From e0e05ac7e0a3dedeecfe8b515f4890d5e801e5c1 Mon Sep 17 00:00:00 2001 From: jiayulong Date: Tue, 9 Jun 2026 11:38:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E2=80=9C=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=BA=95=E6=AE=B5=E6=B2=A1=E6=9C=89=E5=AE=8C?= =?UTF-8?q?=E5=85=A8=E7=94=9F=E6=95=88=E2=80=9D=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E4=BA=95=E5=BA=95=E6=B7=B1=E5=BA=A6=E4=B8=8E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=80=BC=E4=B8=80=E8=87=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/mainwindowcurve.cpp | 124 ++++++++++++++++++++++++++++++++++-- 1 file changed, 118 insertions(+), 6 deletions(-) diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index b3a28b8..6e8362d 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -259,7 +259,9 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : isScale[3]=m_isPrint; isScale[4]=m_isBMP; - QTimer::singleShot(100, this, [=]() { + QTimer::singleShot(200, this, [=]() { + QRect rect = this->geometry(); + this->resize(rect.width(), rect.height()+1); // 设置初始大小 //2个滚动条位置 SetScrollBar_Geometry(); }); @@ -447,6 +449,28 @@ void MainWindowCurve::resizeEvent(QResizeEvent *event) //2个滚动条位置 SetScrollBar_Geometry(); + QRect rect2 = ui->centralwidget->geometry(); + int left, top, right, bottom; + if (ui->centralwidget->layout()) + { + ui->centralwidget->layout()->getContentsMargins(&left, &top, &right, &bottom); + } + //获取井well前2行的高度 + int iTableSize_Head = 0; + getTableSize_Head(iTableSize_Head); + int iTableWellTrack_height = ui->tableWidget_2->rowHeight(0) + (5) + iTableSize_Head -1; + //可视区域高度 + int iScreenHeight = 0; + //锁头 + if(m_fixwellsectionHeaderAc->isChecked()) + { + iScreenHeight = (double)(rect2.height()-10- top -bottom - iTableWellTrack_height)/g_dPixelPerCm * m_iScale; + } + else{ + iScreenHeight = (double)(rect2.height()-10- top -bottom)/g_dPixelPerCm * m_iScale; + } + + ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100 - iScreenHeight); } QToolBar * MainWindowCurve::getPluginToolBar() @@ -4234,6 +4258,28 @@ void MainWindowCurve::s_showHeadTable() //2个滚动条位置 SetScrollBar_Geometry(); + + QRect rect2 = ui->centralwidget->geometry(); + int left, top, right, bottom; + if (ui->centralwidget->layout()) + { + ui->centralwidget->layout()->getContentsMargins(&left, &top, &right, &bottom); + } + //获取井well前2行的高度 + int iTableSize_Head = 0; + getTableSize_Head(iTableSize_Head); + int iTableWellTrack_height = ui->tableWidget_2->rowHeight(0) + (5) + iTableSize_Head -1; + //可视区域高度 + int iScreenHeight = 0; + //锁头 + if(m_fixwellsectionHeaderAc->isChecked()) + { + iScreenHeight = (double)(rect2.height()-10- top -bottom - iTableWellTrack_height)/g_dPixelPerCm * m_iScale; + } + else{ + iScreenHeight = (double)(rect2.height()-10- top -bottom)/g_dPixelPerCm * m_iScale; + } + ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100 - iScreenHeight); ui->verticalScrollBar->setValue(-m_iY2*100); //QMessageBox::information(NULL,"提示","锁头完成!",QMessageBox::Ok); @@ -4285,6 +4331,28 @@ void MainWindowCurve::s_showHeadTable() //通过原始的滚动条,整体滚动 //ui->tableWidget_2->verticalScrollBar()->setValue(0); ShowTableHead_All(); + + QRect rect2 = ui->centralwidget->geometry(); + int left, top, right, bottom; + if (ui->centralwidget->layout()) + { + ui->centralwidget->layout()->getContentsMargins(&left, &top, &right, &bottom); + } + //获取井well前2行的高度 + int iTableSize_Head = 0; + getTableSize_Head(iTableSize_Head); + int iTableWellTrack_height = ui->tableWidget_2->rowHeight(0) + (5) + iTableSize_Head -1; + //可视区域高度 + int iScreenHeight = 0; + //锁头 + if(m_fixwellsectionHeaderAc->isChecked()) + { + iScreenHeight = (double)(rect2.height()-10- top -bottom - iTableWellTrack_height)/g_dPixelPerCm * m_iScale; + } + else{ + iScreenHeight = (double)(rect2.height()-10- top -bottom)/g_dPixelPerCm * m_iScale; + } + ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100 - iScreenHeight); ui->verticalScrollBar->setValue(-m_iY2*100); //QMessageBox::information(NULL,"提示","锁头取消!",QMessageBox::Ok); @@ -4442,13 +4510,14 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName, bool bS widgetWell->m_iY2 = m_iY2; widgetWell->m_strUuid = m_strUuid; widgetWell->m_strSlfName = strSlfName; - if(m_iTableSize_Head2>m_nObjLayerH) + if(m_iTableSize_Head2>104) { - widgetWell->m_nObjLyrH = m_iTableSize_Head2; //m_nObjLayerH; + m_nObjLayerH = m_iTableSize_Head2; } else{ - widgetWell->m_nObjLyrH = m_nObjLayerH; + m_nObjLayerH = 104; } + widgetWell->m_nObjLyrH = m_nObjLayerH; widgetWell->m_nObjDrawH = m_nObjDrawH; widgetWell->m_iScale = m_iScale; widgetWell->setWellHeader(wellH); @@ -5498,7 +5567,28 @@ void MainWindowCurve::Open(QString fileFull) qDebug() << "JSON 模板文件读取成功!"; //重置右侧滚动条 - ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100); + QRect rect2 = ui->centralwidget->geometry(); + int left, top, right, bottom; + if (ui->centralwidget->layout()) + { + ui->centralwidget->layout()->getContentsMargins(&left, &top, &right, &bottom); + } + //获取井well前2行的高度 + int iTableSize_Head = 0; + getTableSize_Head(iTableSize_Head); + int iTableWellTrack_height = ui->tableWidget_2->rowHeight(0) + (5) + iTableSize_Head -1; + //可视区域高度 + int iScreenHeight = 0; + //锁头 + if(m_fixwellsectionHeaderAc->isChecked()) + { + iScreenHeight = (double)(rect2.height()-10- top -bottom - iTableWellTrack_height)/g_dPixelPerCm * m_iScale; + } + else{ + iScreenHeight = (double)(rect2.height()-10- top -bottom)/g_dPixelPerCm * m_iScale; + } + ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100 - iScreenHeight); + //ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100); ui->verticalScrollBar->setValue(-m_iY2*100); QMessageBox::information(NULL,"提示","模板加载完成!",QMessageBox::Ok); @@ -5762,7 +5852,29 @@ void MainWindowCurve::s_changeDepth(QString strUuid, QString strSlfName, QString m_iY1 = iY1; m_iY2 = iY2; //自定义滚动条 - ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100); + QRect rect2 = ui->centralwidget->geometry(); + int left, top, right, bottom; + if (ui->centralwidget->layout()) + { + ui->centralwidget->layout()->getContentsMargins(&left, &top, &right, &bottom); + } + //获取井well前2行的高度 + int iTableSize_Head = 0; + getTableSize_Head(iTableSize_Head); + int iTableWellTrack_height = ui->tableWidget_2->rowHeight(0) + (5) + iTableSize_Head -1; + //可视区域高度 + int iScreenHeight = 0; + //锁头 + if(m_fixwellsectionHeaderAc->isChecked()) + { + iScreenHeight = (double)(rect2.height()-10- top -bottom - iTableWellTrack_height)/g_dPixelPerCm * m_iScale; + } + else{ + iScreenHeight = (double)(rect2.height()-10- top -bottom)/g_dPixelPerCm * m_iScale; + } + + ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100 - iScreenHeight); + //ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100); ui->verticalScrollBar->setValue(-m_iY2*100); double dHight = 0;