手动改变道头高度,重新设置2个滚动条位置
This commit is contained in:
parent
e53cbe241c
commit
7368b3d2c8
|
|
@ -1357,8 +1357,9 @@ void FormWell::onSectionResized(int logicalIndex, int oldSize, int newSize)
|
|||
if(newSize!=0)
|
||||
{
|
||||
MainWindowCurve *parent = (MainWindowCurve *)m_parent;
|
||||
parent->SetScrollBar_Geometry();
|
||||
parent->vertScrollBarChanged_Head(0);
|
||||
//
|
||||
parent->SetScrollBar_Geometry_ByHand();
|
||||
//parent->vertScrollBarChanged_Head(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -355,6 +355,85 @@ void MainWindowCurve::resizeWindow()
|
|||
//update();
|
||||
}
|
||||
|
||||
//手动设置2个滚动条位置
|
||||
void MainWindowCurve::SetScrollBar_Geometry_ByHand()
|
||||
{
|
||||
QRect rect2 = ui->centralwidget->geometry();
|
||||
int left, top, right, bottom;
|
||||
if (ui->centralwidget->layout())
|
||||
{
|
||||
ui->centralwidget->layout()->getContentsMargins(&left, &top, &right, &bottom);
|
||||
}
|
||||
//可视区域高度
|
||||
int iScreenHeight = rect2.height()- top -bottom;
|
||||
|
||||
//锁头
|
||||
if(m_fixwellsectionHeaderAc->isChecked())
|
||||
{
|
||||
//获取井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;
|
||||
|
||||
QRect geoRect2 = ui->verticalScrollBar_2->geometry();
|
||||
ui->verticalScrollBar_2->setGeometry(geoRect2.x(), geoRect2.y(), geoRect2.width(), iTableWellTrack_height);
|
||||
//
|
||||
QRect geoRect = ui->verticalScrollBar->geometry();
|
||||
ui->verticalScrollBar->setGeometry(geoRect.x(), geoRect2.y()+iTableWellTrack_height+2, geoRect.width(), iScreenHeight-iTableWellTrack_height-2);
|
||||
|
||||
//自定义滚动条(头)
|
||||
int iTableSize_Head_Biggest = 0;
|
||||
int iTableSize_Head1 = 0;
|
||||
int iTableSize_Head2 = 0;
|
||||
getTableSize_Head_Biggest(iTableSize_Head_Biggest, iTableSize_Head1, iTableSize_Head2);
|
||||
m_iTableSize_Head2 = iTableSize_Head2;
|
||||
m_nObjLayerH = m_iTableSize_Head2;
|
||||
|
||||
ui->verticalScrollBar_2->setRange(0, iTableSize_Head_Biggest - iTableSize_Head);
|
||||
ui->verticalScrollBar_2->setValue(0);
|
||||
|
||||
//重置滚动条范围值setRange---------------------
|
||||
//可视区域高度
|
||||
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->setValue(-m_iY2*100);
|
||||
|
||||
//道头部滚动条归0
|
||||
vertScrollBarChanged_Head(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->verticalScrollBar_2->setValue(0);
|
||||
|
||||
//替换为高度0,不然居中处理失效
|
||||
QRect geoRect2 = ui->verticalScrollBar_2->geometry();
|
||||
ui->verticalScrollBar_2->setGeometry(geoRect2.x(), geoRect2.y(), geoRect2.width(), 0);
|
||||
//
|
||||
QRect geoRect = ui->verticalScrollBar->geometry();
|
||||
ui->verticalScrollBar->setGeometry(geoRect.x(), geoRect2.y(), geoRect.width(), iScreenHeight);
|
||||
//ui->verticalScrollBar->setGeometry(geoRect.x(), geoRect2.y(), geoRect.width(), geoRect.height()+geoRect2.height());
|
||||
}
|
||||
}
|
||||
|
||||
//2个滚动条位置
|
||||
void MainWindowCurve::SetScrollBar_Geometry()
|
||||
{
|
||||
|
|
@ -3755,6 +3834,8 @@ void MainWindowCurve::_slotExport(QPrinter &printer, int IsBmp, QString pngName,
|
|||
m_PreviewPrintAc->setChecked(true);
|
||||
//切换回锁头模式
|
||||
m_fixwellsectionHeaderAc->setChecked(true);
|
||||
//锁头
|
||||
s_showHeadTable();
|
||||
|
||||
//全部显示道头,方便抓拍道头
|
||||
ShowTableHead_All();
|
||||
|
|
@ -4477,6 +4558,7 @@ void MainWindowCurve::s_showHeadTable()
|
|||
{
|
||||
//恢复原始数据,不然容易造成道头过大
|
||||
m_iTableSize_Head2 = 104;
|
||||
m_nObjLayerH = m_iTableSize_Head2;
|
||||
|
||||
//显示道头/对象头
|
||||
ShowTableHead();
|
||||
|
|
|
|||
|
|
@ -146,6 +146,8 @@ public:
|
|||
void SetNo();
|
||||
//2个滚动条位置
|
||||
void SetScrollBar_Geometry();
|
||||
//手动设置2个滚动条位置
|
||||
void SetScrollBar_Geometry_ByHand();
|
||||
|
||||
public:
|
||||
//展示所有井
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user