From 6a502f755d82dc79edf57b979b332884366ebf8f Mon Sep 17 00:00:00 2001 From: jiayulong Date: Fri, 24 Apr 2026 17:28:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E5=9B=BE=E4=B8=80=E8=A1=A8=EF=BC=8C?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E6=BB=9A=E5=8A=A8=E6=9D=A1=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CallManage/CallManage.h | 2 +- logPlus/DrawTvd.cpp | 2 +- logPlus/PropertyWidget.cpp | 2 +- logPlus/formdraw.cpp | 3 ++- logPlus/forminfo.cpp | 37 +++++++++++++++++++++++++++++++++++++ logPlus/forminfo.h | 3 +++ logPlus/formline.cpp | 22 ++++++++++++++++++++++ logPlus/formline.h | 3 +++ logPlus/mainwindowcurve.cpp | 2 +- logPlus/qmycustomplot.cpp | 4 ++-- logPlus/qmycustomplot.h | 2 +- 11 files changed, 74 insertions(+), 8 deletions(-) diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index 813681a..bf143bd 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -176,7 +176,7 @@ signals: void sig_changeScale(QString strUuid, int iNewScale); //自定义滚动条 - void sig_vertScrollBarChanged(QString strUuid, int iNewValue); + void sig_vertScrollBarChanged(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/DrawTvd.cpp b/logPlus/DrawTvd.cpp index b990a6d..1e23f05 100644 --- a/logPlus/DrawTvd.cpp +++ b/logPlus/DrawTvd.cpp @@ -578,7 +578,7 @@ double GetPixelPerCm() if (screen) { // 获取逻辑DPI logicalDpi = screen->logicalDotsPerInch(); - qDebug() << "Logical DPI:" << QString::number(logicalDpi); + //qDebug() << "Logical DPI:" << QString::number(logicalDpi); if(logicalDpi==0) { diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index 0e0839b..a4b64de 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -2399,7 +2399,7 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant // changedMCalsProperty(m_propertyData[pProperty], variant); } - else if (m_strCurrentProperty == DCA_PROPERTY)//井斜方位图 + else if (m_strCurrentProperty == DCA_PROPERTY)//裂缝 { // 先处理通用属性 CommonPropertyChanged(pProperty, variant); diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 2fc806e..d1c67b0 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -4051,7 +4051,8 @@ FormLine* FormDraw::s_addSantuyibiao(QString strUuid, QString strSlfName, QStrin dHight = 32767; } int ntmpw = (g_iOneWidth * 4) * g_dPixelPerCm; - this->setGeometry(0, 0, ntmpw - 2, (int)dHight); + //curv->setGeometry(0, 0, ntmpw - 2, (int)dHight); + curv->setGeometry(0, 0, ntmpw - 2, (int)32767);//斜井三图一表,固定最大值,方便上下滚动 curv->show(); //斜井三图一表 diff --git a/logPlus/forminfo.cpp b/logPlus/forminfo.cpp index 17b6637..b3d3d45 100644 --- a/logPlus/forminfo.cpp +++ b/logPlus/forminfo.cpp @@ -1630,6 +1630,21 @@ void FormInfo::paintEvent(QPaintEvent* event) painter.drawText(rect.width()/2- tRect.width()/2, nbay - 6, m_strUnit); } + //多臂井径 + if(m_strType == "MCalsObject") + { + int nbay = rect.height() - 5; + + // 显示刻度 + if (m_bShowScale) + { + drawScale_MCals(painter, rect); + } + QFontMetrics fm2(m_curveUnitFont); + QRect tRect = fm2.boundingRect(m_strUnit); + painter.drawText(rect.width()/2- tRect.width()/2, nbay - 6, m_strUnit); + } + if(m_strLineName == "深度") { QFont oldFont = painter.font(); @@ -2028,6 +2043,28 @@ void FormInfo::drawScale_Kedou(QPainter& painter, const QRect& rect) } } +void FormInfo::drawScale_MCals(QPainter& painter, const QRect& rect) +{ + int nbay = rect.height() - 5; + QVector vecScale; + + vecScale << QStringList({ QString::number(m_iStartArmPos) , QString::number(m_iEndArmPos) }); + + painter.setFont(m_curveScaleFont); + QFontMetrics fm1(m_curveScaleFont); + QRect textRect = fm1.boundingRect(QString::number(m_iStartArmPos, 'f', 0)); + int ntxthei = textRect.height() - 4; + int nyy = nbay - ntxthei * vecScale.size() - 3; + for (int i = 0; i < vecScale.size(); i++) + { + const QStringList& slist = vecScale.at(i); + QRect textRect = fm1.boundingRect(slist.at(1)); + int y = nyy + (i + 1) * ntxthei; + painter.drawText(rect.x() + 3, y, slist.at(0)); + painter.drawText(rect.width() - textRect.width() - 3, y, slist.at(1)); + } +} + void FormInfo::paintClassify(QPainter &painter, int compassCenterY) { // 绘制分类 diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index 67721dc..247b52b 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -46,7 +46,10 @@ protected: // 绘制刻度 void drawScale(QPainter& painter, const QRect& rect); + //蝌蚪图等 void drawScale_Kedou(QPainter& painter, const QRect& rect); + //多臂井径 + void drawScale_MCals(QPainter& painter, const QRect& rect); public slots: void dragEnterEvent(QDragEnterEvent* event); diff --git a/logPlus/formline.cpp b/logPlus/formline.cpp index f3c7214..a1419a8 100644 --- a/logPlus/formline.cpp +++ b/logPlus/formline.cpp @@ -21,6 +21,9 @@ 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))); + } void FormLine::DrawTvd() @@ -319,3 +322,22 @@ void FormLine::s_ChangeTvdProperty(QString strUuid, QString strSlfName, QString update(); } + +//自定义滚动条 +void FormLine::vertScrollBarChanged(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()); +} diff --git a/logPlus/formline.h b/logPlus/formline.h index add65db..447407b 100644 --- a/logPlus/formline.h +++ b/logPlus/formline.h @@ -38,6 +38,9 @@ public slots: //斜井三图一表 void s_ChangeTvdProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strGroup, QString strProperty, QVariant variant); + + //滚动条 + void vertScrollBarChanged(QString strUuid, int value, int low, int upper); }; #endif // FORMLINE_H diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 25c5379..aeeb1ac 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -223,7 +223,7 @@ void MainWindowCurve::s_mouseWheel(QWheelEvent *event) void MainWindowCurve::vertScrollBarChanged(int value) { //通知界面缩放 - emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, value); + emit CallManage::getInstance()->sig_vertScrollBarChanged(m_strUuid, value, -m_iY1, -m_iY2); } diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 15fc822..c068cb6 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -130,7 +130,7 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel connect(CallManage::getInstance(), SIGNAL(sig_ChangeScaleType(QString, QString, QString, QString, QString, QString)), this, SLOT(s_ChangeScaleType(QString, QString, QString, QString, QString, QString))); //自定义滚动条 - connect(CallManage::getInstance(), SIGNAL(sig_vertScrollBarChanged(QString, int)), this, SLOT(vertScrollBarChanged(QString, int))); + connect(CallManage::getInstance(), SIGNAL(sig_vertScrollBarChanged(QString, int, int, int)), this, SLOT(vertScrollBarChanged(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))); @@ -11819,7 +11819,7 @@ void QMyCustomPlot::addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, co } //自定义滚动条 -void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value) +void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value, int low, int upper) { if(m_strUuid==strUuid) { diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index b276906..8e01410 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -406,7 +406,7 @@ signals: public slots: void slot_time(); //自定义滚动条 - void vertScrollBarChanged(QString strUuid, int value); + void vertScrollBarChanged(QString strUuid, int value, int low, int upper); //信号槽刷新 void slot_replot();