diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index 87e496a..67b6192 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -176,8 +176,12 @@ 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); + //自定义滚动条(三图一表) + void sig_vertScrollBarChanged_santuyibiao(QString strUuid, int iNewValue, int low, int upper); //改变深度 void sig_changeDepth(QString strUuid, QString strSlfName, QString strWellName, int iY1, int iY2); diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 5b2ef27..b826dce 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; //道宽 @@ -134,11 +135,6 @@ void FormDraw::setDrawData(QStringList listdt, QJsonObject objInfo) QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, m_strTrackName, strLineName); //绑定m_formTrack,方便关联formInfo curv->m_formTrack = m_formTrack; - if ("depthObject" == strType || "waveObject" == strType) - { - curv->m_bRowGridVisible = false; - curv->m_bColGridVisible = false; - } curv->setDepthY(m_iY1, m_iY2); curv->initGeometry(m_strUuid, m_iScale, dW); curv->show(); @@ -479,6 +475,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)) @@ -577,10 +578,16 @@ void FormDraw::DisplayLines(QJsonArray linesArray) { DisplayType_One(lineObjInfo); } + //中间 + sprintf(s,"加载中,共计%d条,正在加载第%d条..", iCount, id+1); + mDepthProgress.SetShowName(s); + mDepthProgress.SetDepth(id+1); } } } } + // + mDepthProgress.DelProgress(); } // 岩心分析 @@ -3014,8 +3021,6 @@ QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QStri } else if (strLineName == "RESULT") { - curv->setRowGridVisible(false); - curv->setColGridVisible(false); //解释结论 initResult(curv, strSlfName, strLineName); } @@ -3051,8 +3056,6 @@ QMyCustomPlot* FormDraw::addTableLine(QString strUuid, QString strSlfName, QStri } else if (strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT") { - curv->setRowGridVisible(false); - curv->setColGridVisible(false); //固井结论 if(listOtherProperty.size()>=3) { @@ -3340,8 +3343,6 @@ void FormDraw::s_addWave(QString strUuid, QString strSlfName, QString strWellNam QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strWaveName); //绑定m_formTrack,方便关联formInfo curv->m_formTrack = m_formTrack; - curv->m_bRowGridVisible = false; - curv->m_bColGridVisible = false; curv->setDepthY(m_iY1, m_iY2); double nW = m_nTrackW; @@ -4412,8 +4413,6 @@ void FormDraw::initMCals(QMyCustomPlot *widget, QString strSlfName, QString strL widget->xAxis->grid()->setVisible(false); widget->yAxis->grid()->setVisible(false); // - widget->m_bRowGridVisible = false; - widget->m_bColGridVisible = false; //------------------- int iMyWidth = widget->axisRect(0)->width(); @@ -4692,7 +4691,8 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi //AppendConsole(PAI_INFO, "FormDraw initForm ReadCurve end"); widget->setInteractions(QCP::iSelectLegend | QCP::iSelectPlottables); - + widget->setRowGridVisible(true); + widget->setColGridVisible(true); widget->setScaleX(vmin, vmax); widget->setDepthY(m_iY1, m_iY2); widget->initGeometry(m_strUuid, m_iScale, g_iOneWidth); @@ -5247,8 +5247,6 @@ void FormDraw::initKedou(QMyCustomPlot *widget, QString strSlfName, QString strL widget->xAxis->grid()->setVisible(false); widget->yAxis->grid()->setVisible(false); // - widget->m_bRowGridVisible = false; - widget->m_bColGridVisible = false; int iMyWidth = widget->axisRect(0)->width(); float vmax = iMyWidth; @@ -5296,8 +5294,6 @@ void FormDraw::initGanzhuang(QMyCustomPlot *widget, QString strSlfName, QString widget->xAxis->grid()->setVisible(false); widget->yAxis->grid()->setVisible(false); // - widget->m_bRowGridVisible = false; - widget->m_bColGridVisible = false; int iMyWidth = widget->axisRect(0)->width(); float vmax = iMyWidth; @@ -5349,8 +5345,6 @@ void FormDraw::initJykt(QMyCustomPlot *widget, QString strSlfName, QString strLi widget->xAxis->grid()->setVisible(false); widget->yAxis->grid()->setVisible(false); // - widget->m_bRowGridVisible = false; - widget->m_bColGridVisible = false; //------------------- m_LeftVal = 0; @@ -5407,8 +5401,6 @@ void FormDraw::initDenv(QMyCustomPlot *widget, QString strSlfName, QString strLi widget->xAxis->grid()->setVisible(false); widget->yAxis->grid()->setVisible(false); // - widget->m_bRowGridVisible = false; - widget->m_bColGridVisible = false; //------------------- m_LeftVal = 0; diff --git a/logPlus/formline.cpp b/logPlus/formline.cpp index 7e4a77e..ffb4ed9 100644 --- a/logPlus/formline.cpp +++ b/logPlus/formline.cpp @@ -22,7 +22,7 @@ FormLine::FormLine(QWidget *parent, QString strSlfName, QString strWellName, QSt connect(CallManage::getInstance(), SIGNAL(sig_ChangeTvdProperty(QString, QString, QString, QString, QString, QString, QString, QVariant)), this, SLOT(s_ChangeTvdProperty(QString, QString, QString, QString, QString, QString, QString, QVariant))); //自定义滚动条 - connect(CallManage::getInstance(), SIGNAL(sig_vertScrollBarChanged(QString, int, int, int)), this, SLOT(vertScrollBarChanged(QString, int, int, int))); + connect(CallManage::getInstance(), SIGNAL(sig_vertScrollBarChanged_santuyibiao(QString, int, int, int)), this, SLOT(vertScrollBarChanged(QString, int, int, int))); } diff --git a/logPlus/logplus.vcxproj b/logPlus/logplus.vcxproj index b85e2eb..fbe80be 100644 --- a/logPlus/logplus.vcxproj +++ b/logPlus/logplus.vcxproj @@ -12,7 +12,6 @@ - @@ -199,7 +198,6 @@ - diff --git a/logPlus/logplus.vcxproj.filters b/logPlus/logplus.vcxproj.filters index ba0d1cd..8b97628 100644 --- a/logPlus/logplus.vcxproj.filters +++ b/logPlus/logplus.vcxproj.filters @@ -313,9 +313,6 @@ Header Files - - Header Files - Header Files @@ -537,9 +534,6 @@ Source Files - - Source Files - libtiff\libtiff 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..8d611a9 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -117,6 +117,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : ui->tableWidget_2->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //隐藏垂直滚动条 //自定义滚动条 ui->verticalScrollBar->setRange(-m_iY2, -m_iY1); + ui->verticalScrollBar->setValue(-m_iY2); connect(ui->verticalScrollBar, SIGNAL(valueChanged(int)), this, SLOT(vertScrollBarChanged(int))); connect(this, SIGNAL(sig_NewTrackChangeWidth(QString, double)), this, SLOT(s_NewTrackChangeWidth(QString, double))); @@ -222,9 +223,57 @@ 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; + //通知界面重设范围 + int iCurValue = (iNumShow-1)*dScrollHeight + upper; + emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, iCurValue, -m_iY1, -m_iY2);//(iNumShow-1)*dScrollHeight_setGeometry + } + else if(value==upper) + { + m_iCurPage = 1; + //通知界面重设范围 + int iCurValue = upper; + emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, iCurValue, -m_iY1, -m_iY2);//(iNumShow-1)*dScrollHeight_setGeometry + } + + + //通知界面重设范围(三图一表) + emit CallManage::getInstance()->sig_vertScrollBarChanged_santuyibiao(m_strUuid, value, -m_iY1, -m_iY2); } //初始化工具栏 @@ -2562,15 +2611,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 +2864,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); + //通知界面重设范围(三图一表) + emit CallManage::getInstance()->sig_vertScrollBarChanged_santuyibiao(m_strUuid, newValue, -m_iY1, -m_iY2); + if(iLoop==iNum-1) { //最后1页 @@ -2961,16 +3019,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 +4203,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); } } @@ -4336,6 +4398,7 @@ void MainWindowCurve::s_changeDepth(QString strUuid, QString strSlfName, QString m_iY2 = iY2; //自定义滚动条 ui->verticalScrollBar->setRange(-m_iY2, -m_iY1); + ui->verticalScrollBar->setValue(-m_iY2); double dHight = 0; dHight = (m_iY2-m_iY1)*100.0/(double)m_iScale * g_dPixelPerCm; @@ -4419,16 +4482,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 +4534,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 ba76004..2d2799b 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -130,6 +130,7 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel //自定义滚动条 connect(CallManage::getInstance(), SIGNAL(sig_vertScrollBarChanged(QString, int, int, int)), this, SLOT(vertScrollBarChanged(QString, int, int, int))); + connect(CallManage::getInstance(), SIGNAL(sig_vertScrollBarChanged_setGeometry(QString, int, int, int)), this, SLOT(vertScrollBarChanged_setGeometry(QString, int, int, int))); //曲线选中,置顶 connect(CallManage::getInstance(), SIGNAL(sig_Raise(QString, QString, QString, QString, QString, int, QString)), this, SLOT(s_Raise(QString, QString, QString, QString, QString, int, QString))); @@ -11915,6 +11916,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) { @@ -11925,6 +11945,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); @@ -11942,7 +11964,7 @@ void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value, int low, in xAxis->setRange(-value, xAxis->range().size(), Qt::AlignRight); const QCPRange& rg = xAxis->range(); this->updateDepthY(rg.lower, rg.upper); - replot(); + replot(QCustomPlot::rpQueuedRefresh); } } else{ @@ -11951,7 +11973,7 @@ void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value, int low, in this->yAxis->setRange(-value, this->yAxis->range().size(), Qt::AlignRight); const QCPRange& rg = yAxis->range(); this->updateDepthY(rg.lower, rg.upper); - replot(); + replot(QCustomPlot::rpQueuedRefresh); } } } diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index 46bf45d..ae82630 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -254,8 +254,8 @@ public: bool m_bFirstTimeConnect=true; //初次绑定编辑曲线信号槽。 bool m_bPriviewRightList=false; //当前是否正在预览曲线。 - bool m_bRowGridVisible = true; // 网格横轴是否显示 - bool m_bColGridVisible = true; // 网格纵轴是否显示 + bool m_bRowGridVisible = false; // 网格横轴是否显示 + bool m_bColGridVisible = false; // 网格纵轴是否显示 int m_nxiGrid = 1; // 细网格间隔 QPen m_xiPen; int m_nzhongGrid = 2; // 中网格间隔 @@ -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();