This commit is contained in:
DESKTOP-450PEFP\mainc 2026-06-12 11:57:41 +08:00
commit 6ddd4f82b1
4 changed files with 70 additions and 7 deletions

View File

@ -1331,17 +1331,17 @@ double FormWell::getTrackHeight(FormTrackTop *formTrackTop)
return dTrackHeight; return dTrackHeight;
} }
//列宽改变 //行高改变
void FormWell::onSectionResized(int logicalIndex, int oldSize, int newSize) void FormWell::onSectionResized(int logicalIndex, int oldSize, int newSize)
{ {
if(g_iLoadingJson==1)//针对模板加载,不处理列宽改变,避免多次冲突 if(g_iLoadingJson==1)//针对模板加载,不处理行高改变,避免多次冲突
{ {
return; return;
} }
if(m_bSetRowHeight) //手工设置行高 if(m_bSetRowHeight) //默认非手工设置行高而是调用接口SetRowHeight
{ {
m_bSetRowHeight = false; //手工设置行高 m_bSetRowHeight = false; //切换为手工设置行高
return; return;
} }

View File

@ -68,7 +68,7 @@ public:
bool m_bShowTrackHead = true; //显示道头 bool m_bShowTrackHead = true; //显示道头
bool m_bMultiProject = false; //多井的打开工程使用模板的井名和slf名 bool m_bMultiProject = false; //多井的打开工程使用模板的井名和slf名
bool m_bSetRowHeight = true; //手工设置行高 bool m_bSetRowHeight = true; //默认非手工设置行高而是调用接口SetRowHeight
// 道图形 // 道图形
QMap<QString, QVector<QWidget*>> m_mapFormDraw; QMap<QString, QVector<QWidget*>> m_mapFormDraw;

View File

@ -609,9 +609,32 @@ void MainWindowCurve::vertScrollBarChanged(int iValue)
iHeightOfScreen = g_iHeight_MyCustom; iHeightOfScreen = g_iHeight_MyCustom;
} }
double dScrollHeight = (iHeightOfScreen-g_WorkSpace_Height)/g_dPixelPerCm/100.0 * (double)m_iScale; 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 = 100 + m_nObjLayerH;
// 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 - 4)/g_dPixelPerCm * m_iScale;
}
//double dScrollHeight = (iHeightOfScreen-g_WorkSpace_Height)/g_dPixelPerCm/100.0 * (double)m_iScale;
double dScrollHeight_setGeometry = iHeightOfScreen/g_dPixelPerCm/100.0 * (double)m_iScale; double dScrollHeight_setGeometry = iHeightOfScreen/g_dPixelPerCm/100.0 * (double)m_iScale;
double dScreenHeightMi = (double)iScreenHeight/100.0;
double dScrollHeight = dScrollHeight_setGeometry - dScreenHeightMi;
// //
double dDelta = value - upper; double dDelta = value - upper;
int iNumShow = dDelta/dScrollHeight; int iNumShow = dDelta/dScrollHeight;
@ -4426,6 +4449,9 @@ void MainWindowCurve::s_selectWell()
//显示/隐藏图头 //显示/隐藏图头
void MainWindowCurve::s_showHeadTable() void MainWindowCurve::s_showHeadTable()
{ {
//恢复原始数据,不然容易造成道头过大
m_iTableSize_Head2 = 104;
//显示道头/对象头 //显示道头/对象头
ShowTableHead(); ShowTableHead();
@ -5996,6 +6022,42 @@ void MainWindowCurve::s_changeScale(QString strUuid, int iNewScale)
m_iScale = iNewScale; m_iScale = iNewScale;
//自定义滚动条
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 = 100 + m_nObjLayerH;
// 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 - 4)/g_dPixelPerCm * m_iScale;
}
//下方滚动条高度
int iHScrollBarHeight = 0;
if(!ui->tableWidget_2->horizontalScrollBar()->isVisible())
{
iHScrollBarHeight = 0;
}
else
{
iHScrollBarHeight = ui->tableWidget_2->horizontalScrollBar()->height()/g_dPixelPerCm * m_iScale;
}
ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100 - iScreenHeight + iHScrollBarHeight);
//ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100);
ui->verticalScrollBar->setValue(-m_iY2*100);
double dHight = 0; double dHight = 0;
dHight = (m_iY2-m_iY1)*100.0/(double)m_iScale * g_dPixelPerCm; dHight = (m_iY2-m_iY1)*100.0/(double)m_iScale * g_dPixelPerCm;
if(g_iShow==1) if(g_iShow==1)
@ -6071,6 +6133,7 @@ void MainWindowCurve::s_changeDepth(QString strUuid, QString strSlfName, QString
m_iY1 = iY1; m_iY1 = iY1;
m_iY2 = iY2; m_iY2 = iY2;
//自定义滚动条 //自定义滚动条
QRect rect2 = ui->centralwidget->geometry(); QRect rect2 = ui->centralwidget->geometry();
int left, top, right, bottom; int left, top, right, bottom;

View File

@ -234,7 +234,7 @@ void QMyTableWidget::setRowHeight(int row, int height)
FormWell *parent = (FormWell *)m_parent; FormWell *parent = (FormWell *)m_parent;
parent->m_bSetRowHeight = true; //手工设置行高 parent->m_bSetRowHeight = true; //默认非手工设置行高而是调用接口SetRowHeight
QTableWidget::setRowHeight(row, height); QTableWidget::setRowHeight(row, height);
} }