解决“设置显示井段没有完全生效”问题,井底深度与设置值一致。

This commit is contained in:
jiayulong 2026-06-09 11:38:03 +08:00
parent 4b5507ac0a
commit e0e05ac7e0

View File

@ -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;