From 78331ea3bdf1904f176150785f6df97494417bbb Mon Sep 17 00:00:00 2001 From: jiayulong Date: Thu, 28 May 2026 11:14:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E9=81=93?= =?UTF-8?q?=E5=9B=BE=E4=BE=8B=E5=8C=BA=E9=AB=98=E5=BA=A6(cm)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/PropertyWidget.cpp | 8 +++-- logPlus/formtrack.cpp | 47 +++++++++++++++++++++++++ logPlus/formtrack.h | 6 ++++ logPlus/formtracktop.cpp | 16 +++++++++ logPlus/formtracktop.h | 7 +++- logPlus/formwell.cpp | 69 +++++++++++++++++++++++++++++++++++++ logPlus/formwell.h | 5 +++ logPlus/mainwindowcurve.cpp | 10 ++++++ 8 files changed, 165 insertions(+), 3 deletions(-) diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index 9aba943..a61b109 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -584,13 +584,16 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant QFont newFont = variant.value(); // 设置字体 m_fromTop->m_font = newFont; - } else if("道头字颜色" == m_propertyData[pProperty]) { QColor newColor = variant.value(); m_fromTop->m_fontColor = newColor; - + } + else if("道图例区高度(cm)" == m_propertyData[pProperty]) + { + double temp = variant.toDouble(); + m_fromTop->setTrackHeight(temp); } else { @@ -2925,6 +2928,7 @@ void PropertyWidget::initTrackProperty(FormTrackTop *fromTop, int iWidth, QMyTab _CreateVariantPropertyItem("通常", "道名称", m_strTrackName, QVariant::String); _CreateVariantPropertyItem("通常", "道头字体", fromTop->m_font, QVariant::Font); _CreateVariantPropertyItem("通常", "道头字颜色", fromTop->m_fontColor, QVariant::Color); + _CreateVariantPropertyItem("通常", "道图例区高度(cm)", fromTop->getTrackHeight(), QVariant::Double); // _CreateVariantPropertyItem("网格", "水平", fromTop->m_nTrackW, QVariant::Bool); _CreateVariantPropertyItem("网格", "垂直", fromTop->m_nTrackW, QVariant::Bool); diff --git a/logPlus/formtrack.cpp b/logPlus/formtrack.cpp index 52a436e..142a3c7 100644 --- a/logPlus/formtrack.cpp +++ b/logPlus/formtrack.cpp @@ -1724,3 +1724,50 @@ void FormTrack::ChangeHeadHeight(QString strLineName, double headHeight) } } } + +//设置 道图例区高度(cm) +void FormTrack::setTrackHeight(double dTrackHeight) +{ + int rowCount = ui->tableWidget->rowCount(); + for(int i=0; itableWidget->cellWidget(i, 0) != nullptr ) + { + auto myWidget = ui->tableWidget->cellWidget(i, 0); + FormInfo *formInfo = qobject_cast(myWidget);//获得widget + if(formInfo) + { + formInfo->m_headHeight = dTrackHeight / (double)rowCount; + formInfo->setFixedHeight(formInfo->m_headHeight * g_dPixelPerCm); + formInfo->repaint(); + // + ui->tableWidget->setRowHeight(i, formInfo->m_headHeight * g_dPixelPerCm); + } + } + } + ui->tableWidget->update(); + //重新设置滚动条范围 + emit CallManage::getInstance()->sig_setRangeVScrollBar2(m_strUuid); +} + +//获取 道图例区高度(cm) +double FormTrack::getTrackHeight() +{ + double dTrackHeight = 0.0; + // + int rowCount = ui->tableWidget->rowCount(); + for(int i=0; itableWidget->cellWidget(i, 0) != nullptr ) + { + auto myWidget = ui->tableWidget->cellWidget(i, 0); + FormInfo *formInfo = qobject_cast(myWidget);//获得widget + if(formInfo) + { + dTrackHeight += formInfo->m_headHeight; + } + } + } + + return dTrackHeight; +} diff --git a/logPlus/formtrack.h b/logPlus/formtrack.h index b607c16..71c6b85 100644 --- a/logPlus/formtrack.h +++ b/logPlus/formtrack.h @@ -63,6 +63,12 @@ public: QStringList getLineList(QString strWellName, QString strTrackName); //展开FormIndo后,获取真正的高度最大值 void getTableSize_Head_Biggest(int &iHight); + + //设置 道图例区高度(cm) + void setTrackHeight(double dTrackHeight); + //获取 道图例区高度(cm) + double getTrackHeight(); + signals: void sig_AddLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QStringList listOtherProperty={}, QString strObjUuid = ""); void sig_AddWave(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); diff --git a/logPlus/formtracktop.cpp b/logPlus/formtracktop.cpp index c9996a2..f37bd84 100644 --- a/logPlus/formtracktop.cpp +++ b/logPlus/formtracktop.cpp @@ -15,6 +15,7 @@ FormTrackTop::FormTrackTop(QWidget *parent, QString strSlfName, QString strWellN ui(new Ui::FormTrackTop) { ui->setupUi(this); + m_parent = parent; // setAcceptDrops(true); @@ -289,3 +290,18 @@ void FormTrackTop::dropEvent(QDropEvent* event) //QApplication::restoreOverrideCursor(); } +//设置 道图例区高度(cm) +void FormTrackTop::setTrackHeight(double dTrackHeight) +{ + FormWell *parent = (FormWell *)m_parent; + parent->setTrackHeight(this, dTrackHeight); +} + +//获取 道图例区高度(cm) +double FormTrackTop::getTrackHeight() +{ + double dTrackHeight = 2.0; + FormWell *parent = (FormWell *)m_parent; + dTrackHeight = parent->getTrackHeight(this); + return dTrackHeight; +} diff --git a/logPlus/formtracktop.h b/logPlus/formtracktop.h index 927e34b..58e2315 100644 --- a/logPlus/formtracktop.h +++ b/logPlus/formtracktop.h @@ -48,12 +48,17 @@ public: QFont m_font; QColor m_fontColor;//颜色 - + QWidget *m_parent; public: QJsonObject makeJson(); + //设置 道图例区高度(cm) + void setTrackHeight(double dTrackHeight); + //获取 道图例区高度(cm) + double getTrackHeight(); + private: QPoint startPosition; diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index 0e3f51d..20b288a 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -1231,3 +1231,72 @@ void FormWell::ShowTableHead() } } +//设置 道图例区高度(cm) +void FormWell::setTrackHeight(FormTrackTop *formTrackTop, double dTrackHeight) +{ + int columnCount = ui->tableWidget->columnCount();//总列数 + for(int i=0; itableWidget->cellWidget(0, i) != nullptr ) + { + auto myWidget = ui->tableWidget->cellWidget(0, i); + FormTrackTop* fromTop = qobject_cast(myWidget); + if(fromTop) + { + if(fromTop == formTrackTop) + { + //进一步获取FormTrack + if( ui->tableWidget->cellWidget(1, i) != nullptr ) + { + auto myWidget = ui->tableWidget->cellWidget(1, i); + FormTrack *formTrack = qobject_cast(myWidget); //获得widget + if(formTrack) + { + formTrack->setTrackHeight(dTrackHeight); + } + } + break; + } + } + } + } +} + +//获取 道图例区高度(cm) +double FormWell::getTrackHeight(FormTrackTop *formTrackTop) +{ + double dTrackHeight = 0.0; + + int columnCount = ui->tableWidget->columnCount();//总列数 + for(int i=0; itableWidget->cellWidget(0, i) != nullptr ) + { + auto myWidget = ui->tableWidget->cellWidget(0, i); + FormTrackTop* fromTop = qobject_cast(myWidget); + if(fromTop) + { + if(fromTop == formTrackTop) + { + //进一步获取FormTrack + if( ui->tableWidget->cellWidget(1, i) != nullptr ) + { + auto myWidget = ui->tableWidget->cellWidget(1, i); + FormTrack *formTrack = qobject_cast(myWidget); //获得widget + if(formTrack) + { + dTrackHeight = formTrack->getTrackHeight(); + } + } + break; + } + } + } + } + + return dTrackHeight; +} diff --git a/logPlus/formwell.h b/logPlus/formwell.h index 59878e7..7125b51 100644 --- a/logPlus/formwell.h +++ b/logPlus/formwell.h @@ -96,6 +96,11 @@ public: void HideTableHead(); void ShowTableHead(); + //设置 道图例区高度(cm) + void setTrackHeight(FormTrackTop *formTrackTop, double dTrackHeight); + //获取 道图例区高度(cm) + double getTrackHeight(FormTrackTop *formTrackTop); + public slots: //void onTableColumnsInserted(const QModelIndex &parent, int first, int last); diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 1d5c87d..3d394f5 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -5118,6 +5118,11 @@ void MainWindowCurve::Open(QString fileFull) //改变道宽 void MainWindowCurve::s_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth) { + if(strUuid != m_strUuid) + { + return; + } + int columnCount = ui->tableWidget_2->columnCount();//总列数 for(int i=0; itableWidget_2->columnCount();//总列数 for(int i=0; i