diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index 87e496a..73b128a 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -176,6 +176,8 @@ signals: //改变缩放比例 void sig_changeScale(QString strUuid, int iNewScale); + //自定义滚动条 + void sig_vertScrollBarChanged_setGeometry(QString strUuid, int iNewValue, int low, int upper); //自定义滚动条 void sig_vertScrollBarChanged(QString strUuid, int iNewValue, int low, int upper); diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 326bcb4..d69ac1c 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -13,6 +13,7 @@ #include "formline.h" #include "PropertyWidget.h" #include "DrawTvd.h" +#include "DepthProgress.h" //以下参数从配置文件读取 extern int g_iOneWidth; //道宽 @@ -480,6 +481,11 @@ void FormDraw::DisplayLines(QJsonArray linesArray) } } + //进度提示 + char s[200]; + DepthProgress mDepthProgress; + mDepthProgress.CreatProgress(0, iCount,"加载.."); + for (int id = 0; id < iCount; id++) { if (mapLines.contains(id)) @@ -578,10 +584,16 @@ void FormDraw::DisplayLines(QJsonArray linesArray) { DisplayType_One(lineObjInfo); } + //中间 + sprintf(s,"加载中,共计%d条,正在加载第%d条..", iCount, id); + mDepthProgress.SetShowName(s); + mDepthProgress.SetDepth(id); } } } } + // + mDepthProgress.DelProgress(); } // 岩心分析 diff --git a/logPlus/mainwindow.cpp b/logPlus/mainwindow.cpp index 2659f4f..afed732 100644 --- a/logPlus/mainwindow.cpp +++ b/logPlus/mainwindow.cpp @@ -170,8 +170,9 @@ void MainWindow::ReadConfig() qtCommon->readShowScale(configPath, iShow); g_iShow = iShow; + //(0:采用最大30000像素高度, 1:采用屏幕工作区域高度, 其他数字:高度采用g_iHeight_MyCustom的值) + int iHeight = 10000; //读取,MyCustom界面高度 - int iHeight = 1; //qtCommon->readHeight(configPath, iHeight); g_iHeight_MyCustom = iHeight; diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index aeeb1ac..6a80c51 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -222,8 +222,53 @@ void MainWindowCurve::s_mouseWheel(QWheelEvent *event) //自定义滚动条 void MainWindowCurve::vertScrollBarChanged(int value) { - //通知界面缩放 - emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, value, -m_iY1, -m_iY2); + int low = -m_iY1; + int upper = -m_iY2; + + int iHeightOfScreen = 30000;//QApplication::desktop()->height(); + if(g_iHeight_MyCustom == 0) + { + iHeightOfScreen = 30000; + } + else if(g_iHeight_MyCustom == 1) + { + iHeightOfScreen = g_WorkSpace_Height; + } + else + { + iHeightOfScreen = g_iHeight_MyCustom; + } + + double dScrollHeight = (iHeightOfScreen-g_WorkSpace_Height)/g_dPixelPerCm/100.0 * (double)m_iScale; + + double dScrollHeight_setGeometry = iHeightOfScreen/g_dPixelPerCm/100.0 * (double)m_iScale; + // + double dDelta = value - upper; + int iNumShow = dDelta/dScrollHeight; + if(dDelta - (iNumShow * dScrollHeight) > 0) + { + iNumShow++; + } + if(m_iCurPage == iNumShow) + { + int iCurValue = dDelta - (iNumShow-1)*dScrollHeight; + //通知界面重设范围 + emit CallManage::getInstance()->sig_vertScrollBarChanged_setGeometry(m_strUuid, iCurValue, dScrollHeight_setGeometry, 0); + } + else if(iNumShow>0) + { + m_iCurPage = iNumShow; + //通知界面重设范围 + emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, (iNumShow-1)*dScrollHeight_setGeometry, -m_iY1, -m_iY2); + +// // +// int iCurValue = dDelta - (iNumShow-1)*dScrollHeight; +// //通知界面重设范围 +// emit CallManage::getInstance()->sig_vertScrollBarChanged_setGeometry(m_strUuid, iCurValue, dScrollHeight, 0); + } + + //通知界面重设范围 + //emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, value, -m_iY1, -m_iY2); } @@ -2562,15 +2607,15 @@ void copyFile(const QString &sourcePath, const QString &destinationPath) { // =4 to svg void MainWindowCurve::_slotExport(QPrinter &printer, int IsBmp, QString pngName, QString strTmpName) { - //Small模式,出图的原始图片是否采用小图片(默认0:大图--缺点出图时占用内存大, 1:小图--缺点小图拼接容易有缝隙) - if(g_iSmallPrint==0) - { - //首先调整为最大图,减少打印空隙 - //MyCustom界面高度g_iHeight_MyCustom的值 (0:采用最大30000像素高度, 1:采用屏幕工作区域高度, 其他数字:高度采用g_iHeight_MyCustom的值) - g_iHeight_MyCustom = 0; - //打印出图,改变深度 - changeDepthForPrint(); - } +// //Small模式,出图的原始图片是否采用小图片(默认0:大图--缺点出图时占用内存大, 1:小图--缺点小图拼接容易有缝隙) +// if(g_iSmallPrint==0) +// { +// //首先调整为最大图,减少打印空隙 +// //MyCustom界面高度g_iHeight_MyCustom的值 (0:采用最大30000像素高度, 1:采用屏幕工作区域高度, 其他数字:高度采用g_iHeight_MyCustom的值) +// g_iHeight_MyCustom = 0; +// //打印出图,改变深度 +// changeDepthForPrint(); +// } printer.setPageMargins(0.0,0.0,0.0,0.0,QPrinter::DevicePixel); @@ -2815,6 +2860,8 @@ void MainWindowCurve::_slotExport(QPrinter &printer, int IsBmp, QString pngName, images.append(convertToQImage(pPixmap_wellTrackInfo)); // 将QPixmap转换为QImage并存储到列表中 } + double newValue = 0; + double newValue_last = 0; //int iPreH = 6; int iLoop = 0; for(iLoop = 0; iLoopverticalScrollBar->setValue(newValue);//设置右侧滚动条 + + newValue_last = newValue; + //ui->verticalScrollBar->setValue(newValue);//设置右侧滚动条 + //通知界面重设范围 + emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, newValue, -m_iY1, -m_iY2); + if(iLoop==iNum-1) { //最后1页 @@ -2961,16 +3013,17 @@ void MainWindowCurve::_slotExport(QPrinter &printer, int IsBmp, QString pngName, mDepthProgress.DelProgress(); //Small模式,出图的原始图片是否采用小图片(默认0:大图--缺点出图时占用内存大, 1:小图--缺点小图拼接容易有缝隙) - if(g_iSmallPrint==0) - { - //恢复调整为最小图,减少卡顿 - //MyCustom界面高度g_iHeight_MyCustom的值 (0:采用最大30000像素高度, 1:采用屏幕工作区域高度, 其他数字:高度采用g_iHeight_MyCustom的值) - g_iHeight_MyCustom = 1; - //打印出图,改变深度 - changeDepthForPrint(); - } +// if(g_iSmallPrint==0) +// { +// //恢复调整为最小图,减少卡顿 +// //MyCustom界面高度g_iHeight_MyCustom的值 (0:采用最大30000像素高度, 1:采用屏幕工作区域高度, 其他数字:高度采用g_iHeight_MyCustom的值) +// g_iHeight_MyCustom = 1; +// //打印出图,改变深度 +// changeDepthForPrint(); +// } - ui->verticalScrollBar->setValue(-m_iY2);//设置右侧滚动条 + //ui->verticalScrollBar->setValue(-m_iY1);//设置右侧滚动条 + ui->verticalScrollBar->setValue(newValue_last);//设置右侧滚动条 if(bOK) { QMessageBox::information(NULL,"提示","图件输出完成!",QMessageBox::Ok); @@ -4144,8 +4197,11 @@ void MainWindowCurve::Open(QString fileFull) //重置右侧滚动条 ui->verticalScrollBar->setRange(-m_iY2, -m_iY1); ui->verticalScrollBar->setValue(-m_iY2); + + QMessageBox::information(NULL,"提示","模板加载完成!",QMessageBox::Ok); } else { qWarning() << "JSON 模板文件打开失败:" << file.errorString(); + QMessageBox::information(NULL,"提示","模板加载失败!",QMessageBox::Ok); } } @@ -4419,16 +4475,31 @@ void MainWindowCurve::changeDepthForPrint() progressBar->hide(); - double dHight = 0; - dHight = (m_iY2-m_iY1)*100.0/(double)m_iScale * g_dPixelPerCm; - if(g_iShow==1) +// double dHight = 0; +// dHight = (m_iY2-m_iY1)*100.0/(double)m_iScale * g_dPixelPerCm; +// if(g_iShow==1) +// { +// //显示刻度 +// dHight = dHight+30; +// } +// if(dHight>32767) +// { +// dHight = 32767; +// } + + // 屏幕高度 + int iHeightOfScreen = 30000;//QApplication::desktop()->height(); + if(g_iHeight_MyCustom == 0) { - //显示刻度 - dHight = dHight+30; + iHeightOfScreen = 30000; } - if(dHight>32767) + else if(g_iHeight_MyCustom == 1) { - dHight = 32767; + iHeightOfScreen = g_WorkSpace_Height; + } + else + { + iHeightOfScreen = g_iHeight_MyCustom; } //-------------------- @@ -4456,26 +4527,12 @@ void MainWindowCurve::changeDepthForPrint() FormWell *widgetWell = (FormWell*)myWidget;//获得widget if(widgetWell) { - widgetWell->setRowHeight(dHight, progressBar, iSplit); + widgetWell->setRowHeight(iHeightOfScreen, progressBar, iSplit); } } } } - // 屏幕高度 - int iHeightOfScreen = 30000;//QApplication::desktop()->height(); - if(g_iHeight_MyCustom == 0) - { - iHeightOfScreen = 30000; - } - else if(g_iHeight_MyCustom == 1) - { - iHeightOfScreen = g_WorkSpace_Height; - } - else - { - iHeightOfScreen = g_iHeight_MyCustom; - } // //获取井well前2行的高度 int iTableSize_Head = 100 + m_nObjLayerH; diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index 9486b63..203a1de 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -91,7 +91,7 @@ public: int m_iScale=200; double m_iY1=-1000; double m_iY2=0; - + int m_iCurPage = 1;//当前页 public: //展示所有井 void DisplayWells(QJsonArray wellsArray); diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 1d97c6f..403a986 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -11910,6 +11910,25 @@ void QMyCustomPlot::addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, co pLine->setPoints(myPolygon); } +void QMyCustomPlot::vertScrollBarChanged_setGeometry(QString strUuid, int value, int low, int upper) +{ + if(m_strUuid==strUuid) + { + } + else + { + return; + } + //上移或下移 + QRect geoRect = geometry(); + // + double dDelta = value; //- upper + double dPercent = dDelta / (low-upper); + + setGeometry(0, -(dPercent*geoRect.height()), geoRect.width(), geoRect.height()); + return; +} + //自定义滚动条 void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value, int low, int upper) { @@ -11920,6 +11939,8 @@ void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value, int low, in { return; } + QRect geoRect = geometry(); + setGeometry(0, 0, geoRect.width(), geoRect.height()); // FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName); diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index 529b635..ae82630 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -408,6 +408,7 @@ public slots: void slot_time(); //自定义滚动条 void vertScrollBarChanged(QString strUuid, int value, int low, int upper); + void vertScrollBarChanged_setGeometry(QString strUuid, int value, int low, int upper); //信号槽刷新 void slot_replot();