From a1d59208b0079faaf83122610d5278b0bcc1616e Mon Sep 17 00:00:00 2001 From: jiayulong Date: Tue, 26 May 2026 16:57:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=95=E5=B1=9E=E6=80=A7=EF=BC=8C=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E2=80=9C=E6=98=BE=E7=A4=BA=E9=81=93=E5=A4=B4=E2=80=9D?= =?UTF-8?q?=E5=8B=BE=E9=80=89=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/CallManage.h | 2 +- logPlus/PropertyWidget.cpp | 3 +- logPlus/formwell.cpp | 46 ++++++++++++++++-- logPlus/formwell.h | 1 + logPlus/mainwindowcurve.cpp | 95 ++++++++++++++++++++++++++++--------- logPlus/mainwindowcurve.h | 9 ++-- 6 files changed, 124 insertions(+), 32 deletions(-) diff --git a/logPlus/CallManage.h b/logPlus/CallManage.h index 1e7c113..3946cca 100644 --- a/logPlus/CallManage.h +++ b/logPlus/CallManage.h @@ -204,7 +204,7 @@ signals: //修改黑白图 void sig_changeBlack(QString strUuid, bool bBlack); - void sig_changeWellProperty(QString strSlfName, QString strWellName, QVariantList listVal); + void sig_changeWellProperty(QString strUuid, QString strSlfName, QString strWellName, QVariantList listVal); //改变道宽 void sig_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth); diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index 7f014a9..182d6b9 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -1954,7 +1954,7 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant else { QVariantList vlist = { strGroup, strPro, variant }; - emit CallManage::getInstance()->sig_changeWellProperty(m_strSlfName, m_strWellName, vlist); + emit CallManage::getInstance()->sig_changeWellProperty(m_strUuid, m_strSlfName, m_strWellName, vlist); } } else if(m_strCurrentProperty == Curve_Property) @@ -2858,6 +2858,7 @@ void PropertyWidget::initWellProperty(QString strUuid, QString strSlfName, QStri // _CreateVariantPropertyItem("通常", "开始深度(m)", 0-m_iY2, QVariant::Double); _CreateVariantPropertyItem("通常", "终止深度(m)", 0-m_iY1, QVariant::Double); + _CreateVariantPropertyItem("通常", "显示道头", fWell->m_bShowTrackHead, QVariant::Bool); if (fWell) { diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index 1bbdf4f..70f8728 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -727,6 +727,28 @@ void FormWell::setWellProperty(QVariantList listVal) QString strGroup = listVal.at(0).toString(); QString strPro = listVal.at(1).toString(); + if (strGroup == "通常") + { + if ("显示道头" == strPro) + { + m_bShowTrackHead = listVal.at(2).toBool(); + // + if(m_bShowTrackHead) + { + ui->tableWidget->showRow(0); + ui->tableWidget->update(); + } + else + { + ui->tableWidget->hideRow(0); + ui->tableWidget->update(); + } + MainWindowCurve *parent = (MainWindowCurve *)m_parent; + parent->SetScrollBar_Geometry(); + } + return; + } + GridProperty* gridpt = NULL;// &pWell->getCuGridProperty(); if (strGroup == "粗网格") { @@ -895,6 +917,7 @@ QJsonObject FormWell::makeJson() // rootObj["WellName"] = m_strWellName; rootObj["SlfName"] = slffilename; + rootObj["bShowTrackHead"] = m_bShowTrackHead; // 创建JSON数组并填充数据 QJsonArray subcaseArray; @@ -1160,19 +1183,34 @@ void FormWell::HideTableHead() { if(ui->tableWidget->rowCount()>0) { - //高度 - ui->tableWidget->hideRow(0); + //显示道头 + if(m_bShowTrackHead) + { + ui->tableWidget->showRow(0); + } + else + { + ui->tableWidget->hideRow(0); + } ui->tableWidget->hideRow(1); ui->tableWidget->update(); } } +//显示道头/对象头 void FormWell::ShowTableHead() { if(ui->tableWidget->rowCount()>0) { - //高度 - ui->tableWidget->showRow(0); + //显示道头 + if(m_bShowTrackHead) + { + ui->tableWidget->showRow(0); + } + else + { + ui->tableWidget->hideRow(0); + } ui->tableWidget->showRow(1); ui->tableWidget->update(); } diff --git a/logPlus/formwell.h b/logPlus/formwell.h index 51c1217..59878e7 100644 --- a/logPlus/formwell.h +++ b/logPlus/formwell.h @@ -65,6 +65,7 @@ public: double m_iY1=0; double m_iY2=0; QWidget *m_parent; + bool m_bShowTrackHead = true; //显示道头 // 道图形 QMap> m_mapFormDraw; diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 3805746..396264f 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -137,12 +137,11 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : connect(ui->verticalScrollBar_2, SIGNAL(valueChanged(int)), this, SLOT(vertScrollBarChanged_Head(int))); connect(this, SIGNAL(sig_NewTrackChangeWidth(QString, double)), this, SLOT(s_NewTrackChangeWidth(QString, double))); - //connect(this, SIGNAL(sig_NewWell(QString, QString)), this, SLOT(s_NewWell(QString, QString))); connect(CallManage::getInstance(), SIGNAL(sig_mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); connect(CallManage::getInstance(), SIGNAL(sig_changeScale(QString, int)), this, SLOT(s_changeScale(QString, int))); connect(CallManage::getInstance(), SIGNAL(sig_changeDepth(QString, QString, QString, int, int)), this, SLOT(s_changeDepth(QString, QString, QString, int, int))); - connect(CallManage::getInstance(), SIGNAL(sig_changeWellProperty(QString, QString, QVariantList)), this, SLOT(s_changeWellProperty(QString, QString, QVariantList))); + connect(CallManage::getInstance(), SIGNAL(sig_changeWellProperty(QString, QString, QString, QVariantList)), this, SLOT(s_changeWellProperty(QString, QString, QString, QVariantList))); connect(CallManage::getInstance(), SIGNAL(sig_changeWidth(QString, QString, QString, QString, int, int)), this, SLOT(s_changeWidth(QString, QString, QString, QString, int, int))); connect(CallManage::getInstance(), SIGNAL(sig_changeTrackProperty(QVariantList)), this, SLOT(s_changeTrackProperty(QVariantList))); @@ -252,6 +251,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : }); } +//2个滚动条位置 void MainWindowCurve::SetScrollBar_Geometry() { //锁头 @@ -2598,7 +2598,7 @@ QStringList MainWindowCurve::insertCol(double dW) { //井没创建,创建井+道+曲线 //新建井 - s_NewWell(strWellName, strSlfName); + s_NewWell(strWellName, strSlfName, m_bShowTrackHead); //m_listWell.push_back(strWellName);//重复添加 column= 0; @@ -2653,7 +2653,7 @@ QStringList MainWindowCurve::insertCol_New(double dW, QString strWellName, QStri { //井没创建,创建井+道+曲线 //新建井 - s_NewWell(strWellName, strSlfName); + s_NewWell(strWellName, strSlfName, m_bShowTrackHead); //m_listWell.push_back(strWellName);//重复添加 column= 0; @@ -3823,7 +3823,7 @@ void MainWindowCurve::s_selectWell() //井没创建,创建井+道+曲线 //新建井 - s_NewWell(listWell[g_SelectWellIndex], listSlf[g_SelectWellIndex]); + s_NewWell(listWell[g_SelectWellIndex], listSlf[g_SelectWellIndex], m_bShowTrackHead); //新建道 emit CallManage::getInstance()->sig_NewTrack(m_strUuid, listWell[g_SelectWellIndex], "", "", ""); } @@ -3951,7 +3951,7 @@ QJsonObject MainWindowCurve::makeJson() return rootObj; } -void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName) +void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName, bool bShowTrackHead) { //因为tableWidget需要提前规定好行数与列数 int rowcount = 2; //总行数 @@ -4052,12 +4052,16 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName) widgetWell->m_nObjLyrH = m_nObjLayerH; widgetWell->m_nObjDrawH = m_nObjDrawH; widgetWell->m_iScale = m_iScale; - widgetWell->setWellHeader(wellH); + widgetWell->setWellHeader(wellH); + //显示道头 + widgetWell->m_bShowTrackHead = bShowTrackHead; // ui->tableWidget_2->setCellWidget(i, columnCount, widgetWell);//默认用widgetWell填充满 m_mapFWell.insert(strWellName, widgetWell); // m_listWell.push_back(strWellName); + //显示道头 + widgetWell->ShowTableHead(); } } @@ -4154,7 +4158,7 @@ void MainWindowCurve::s_NewTrack() { //井没创建,创建井+道+曲线 //新建井 - s_NewWell(strWellName, strSlfName); + s_NewWell(strWellName, strSlfName, m_bShowTrackHead); //m_listWell.push_back(strWellName);//重复添加 column= 0; @@ -4878,7 +4882,7 @@ void MainWindowCurve::NewWellAndTrack(QString strWellName, QString strSlfName, Q { //井没创建,创建井+道+曲线 //新建井 - s_NewWell(strWellName, strSlfName); + s_NewWell(strWellName, strSlfName, m_bShowTrackHead); //m_listWell.push_back(strWellName);//重复添加 //新建道+曲线 @@ -5423,13 +5427,60 @@ void MainWindowCurve::changeDepthForPrint() progressBar->deleteLater(); } -void MainWindowCurve::s_changeWellProperty(QString strSlfName, QString strWellName, QVariantList listVal) +void MainWindowCurve::s_changeWellProperty(QString strUuid, QString strSlfName, QString strWellName, QVariantList listVal) { - FormWell* pWell = m_mapFWell.value(strWellName); - if (!pWell) - return; + if(m_strUuid==strUuid) + { + } + else + { + return; + } - pWell->setWellProperty(listVal); + QString strGroup = listVal.at(0).toString(); + QString strPro = listVal.at(1).toString(); + + if (strGroup == "通常" && "显示道头" == strPro) + { + m_bShowTrackHead = listVal.at(2).toBool(); + + //目前对所有井统一处理,不然出图时无法对齐 + int columnCount = ui->tableWidget_2->columnCount();//总列数 + for(int i=0; itableWidget_2->cellWidget(1, i) != nullptr ) + { + auto myWidget = ui->tableWidget_2->cellWidget(1, i); + if(myWidget) + { + // + FormWell *widgetWell = (FormWell*)myWidget;//获得widget + if(widgetWell) + { + widgetWell->setWellProperty(listVal); + } + } + } + } + } + else + { + //其他网格属性,只针对当前井 + FormWell* pWell = m_mapFWell.value(strWellName); + if (!pWell) + return; + + pWell->setWellProperty(listVal); + } } void MainWindowCurve::DisplayWells(QJsonArray wellsArray) @@ -5490,10 +5541,6 @@ void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo) if (value.isString()) { strWellName = value.toString(); qDebug() << "WellName:" << strWellName; - - //新建井 - //mainWindowCurve->s_NewWell(strWellName); - //s_NewWell(strWellName); } } @@ -5503,10 +5550,14 @@ void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo) if (value.isString()) { strSlfName = value.toString(); qDebug() << "strSlfName:" << strSlfName; + } + } - //新建井 - //mainWindowCurve->s_NewWell(strWellName); - //s_NewWell(strWellName); + if (wellObjInfo.contains("bShowTrackHead")) + { + QJsonValue value = wellObjInfo.value("bShowTrackHead"); + if (value.isBool()) { + m_bShowTrackHead = value.toBool(); } } @@ -5514,7 +5565,7 @@ void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo) QString folderPath = GetLogdataPath(); folderPath = folderPath + g_prjname; strSlfName = folderPath + "/" + "#" + strWellName + "/" + strSlfName; - s_NewWell(strWellName, strSlfName); + s_NewWell(strWellName, strSlfName, m_bShowTrackHead); // if (wellObjInfo.contains("formTracks")) diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index 1deb46d..11e3e73 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -109,6 +109,7 @@ public: int m_iCurPage = 1;//当前页 //图像自滚定时器 QTimer *m_clockTimer = nullptr; + bool m_bShowTrackHead = true; //显示道头 public: //黑白图,针对共享内存,使用老版本代码,需要以下定义 @@ -126,6 +127,7 @@ public: void SetIsColorPrint(bool iscolorprint); bool GetIsColorPrint(); void SetNo(); + //2个滚动条位置 void SetScrollBar_Geometry(); public: @@ -177,8 +179,7 @@ public: void writeTiff(const QImage image, const QString filename); signals: - void sig_NewTrackChangeWidth(QString strWellName, double nW=0);//新建道后,改变井宽 - void sig_NewWell(QString strWellName); + void sig_NewTrackChangeWidth(QString strWellName, double nW=0);//新建道后,改变井宽 public slots: void slot_time(); @@ -186,7 +187,7 @@ public slots: void s_changeScale(QString strUuid, int iNewScale); //改变深度 void s_changeDepth(QString strUuid, QString strSlfName, QString strWellName, int iY1, int iY2); - void s_changeWellProperty(QString strSlfName, QString strWellName, QVariantList listVal); + void s_changeWellProperty(QString strUuid, QString strSlfName, QString strWellName, QVariantList listVal); //改变道宽 void s_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth); @@ -238,7 +239,7 @@ public: QAction* m_ModuleOpenAc = nullptr; //处理方法 public slots: - void s_NewWell(QString strWellName, QString strSlfName);//新建井 + void s_NewWell(QString strWellName, QString strSlfName, bool bShowTrackHead = true);//新建井 void s_NewTrackChangeWidth(QString strWellName, double nW=0);//新建道后,改变井宽 void s_NewTrack_No_Line(QString strWellName, QString strTrackName);//新建空白道,没有曲线