锁头,调整道头高度,右侧滑棒跟随调整
This commit is contained in:
parent
59ac718dff
commit
4b5507ac0a
|
|
@ -22,6 +22,8 @@ extern int g_WorkSpace_Height;
|
|||
extern QString g_strSlfName;
|
||||
extern QString g_strWellName;
|
||||
|
||||
extern int g_iLoadingJson;
|
||||
|
||||
//井+道名
|
||||
FormWell::FormWell(QWidget *parent, QString strWellName) :
|
||||
QWidget(parent),
|
||||
|
|
@ -65,6 +67,10 @@ FormWell::FormWell(QWidget *parent, QString strWellName) :
|
|||
ui->tableWidget->verticalScrollBar()->setDisabled(true); // 禁用滚动
|
||||
ui->tableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //隐藏垂直滚动条
|
||||
|
||||
//行高改变
|
||||
connect(ui->tableWidget->verticalHeader(), &QHeaderView::sectionResized, this, &FormWell::onSectionResized);
|
||||
|
||||
|
||||
//关联信号槽
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_NewTrack(QString, QString, QString, QString, QString,int)), this, SLOT(s_NewTrack(QString, QString, QString, QString, QString,int)));
|
||||
//关联信号槽
|
||||
|
|
@ -1129,7 +1135,7 @@ void FormWell::vertScrollBarChanged_setGeometry(double value, double low, double
|
|||
}
|
||||
|
||||
//获取头2行的宽高,方便输出图
|
||||
void FormWell::getTableSize_Head_Biggest(int &iHight)
|
||||
void FormWell::getTableSize_Head_Biggest(int &iHight, int &iHight1, int &iHight2)
|
||||
{
|
||||
//获取可视视图大小 tableWidget
|
||||
iHight = 0;
|
||||
|
|
@ -1146,6 +1152,7 @@ void FormWell::getTableSize_Head_Biggest(int &iHight)
|
|||
}
|
||||
//
|
||||
int iHight_Big = 0;
|
||||
int iHight_Big_Row2 = 0;
|
||||
int columnCount = ui->tableWidget->columnCount();//总列数
|
||||
for(int i=0; i<columnCount; i++)
|
||||
{
|
||||
|
|
@ -1161,6 +1168,7 @@ void FormWell::getTableSize_Head_Biggest(int &iHight)
|
|||
if(iHight_Tmp>iHight_Big)
|
||||
{
|
||||
iHight_Big = iHight_Tmp;
|
||||
iHight_Big_Row2 = ui->tableWidget->rowHeight(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1173,11 +1181,16 @@ void FormWell::getTableSize_Head_Biggest(int &iHight)
|
|||
//
|
||||
if(iHight == 0)
|
||||
{
|
||||
iHight1 = 100;
|
||||
iHight2 = m_nObjLyrH;
|
||||
//
|
||||
iHight = 100 + m_nObjLyrH;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
iHight1 = iHight;
|
||||
iHight2 = iHight_Big_Row2;
|
||||
//
|
||||
iHight = iHight + iHight_Big;
|
||||
}
|
||||
}
|
||||
|
|
@ -1317,3 +1330,35 @@ double FormWell::getTrackHeight(FormTrackTop *formTrackTop)
|
|||
|
||||
return dTrackHeight;
|
||||
}
|
||||
|
||||
//列宽改变
|
||||
void FormWell::onSectionResized(int logicalIndex, int oldSize, int newSize)
|
||||
{
|
||||
if(g_iLoadingJson==1)//针对模板加载,不处理列宽改变,避免多次冲突
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(m_bSetRowHeight) //手工设置行高
|
||||
{
|
||||
m_bSetRowHeight = false; //手工设置行高
|
||||
return;
|
||||
}
|
||||
|
||||
//qDebug() << "FormWell onSectionResized, logicalIndex="+ QString::number(logicalIndex) +", newSize="+ QString::number(newSize);
|
||||
|
||||
if(logicalIndex==0)
|
||||
{
|
||||
//第一行不允许改变高度
|
||||
ui->tableWidget->setRowHeight(0, 100);
|
||||
}
|
||||
else if(logicalIndex==1)
|
||||
{
|
||||
if(newSize!=0)
|
||||
{
|
||||
MainWindowCurve *parent = (MainWindowCurve *)m_parent;
|
||||
parent->SetScrollBar_Geometry();
|
||||
parent->vertScrollBarChanged_Head(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,6 +68,8 @@ public:
|
|||
bool m_bShowTrackHead = true; //显示道头
|
||||
bool m_bMultiProject = false; //多井的打开工程,使用模板的井名和slf名
|
||||
|
||||
bool m_bSetRowHeight = true; //手工设置行高
|
||||
|
||||
// 道图形
|
||||
QMap<QString, QVector<QWidget*>> m_mapFormDraw;
|
||||
|
||||
|
|
@ -87,7 +89,7 @@ public:
|
|||
//获取当前井的所有道名称
|
||||
QStringList getTrackNameList();
|
||||
void getTableSize_Head(int &iHight);
|
||||
void getTableSize_Head_Biggest(int &iHight);//展开FormIndo后,获取真正的高度最大值
|
||||
void getTableSize_Head_Biggest(int &iHight, int &iHight1, int &iHight2);//展开FormIndo后,获取真正的高度最大值
|
||||
void getRowHeight_Well(int &iHight1, int &iHight2, int &iHight3);
|
||||
void setRowHeight_Well(int iHight1, int iHight2, int iHight3);
|
||||
|
||||
|
|
@ -123,7 +125,8 @@ public slots:
|
|||
void slotContextMenu(QPoint pos);
|
||||
void slotDeleteSelectTrack();
|
||||
|
||||
|
||||
//行高改变
|
||||
void onSectionResized(int logicalIndex, int oldSize, int newSize);
|
||||
};
|
||||
|
||||
#endif // FORMWELL_H
|
||||
|
|
|
|||
|
|
@ -275,9 +275,9 @@ void MainWindowCurve::s_setRangeVScrollBar2(QString strUuid)
|
|||
{
|
||||
return;
|
||||
}
|
||||
//自定义滚动条(头)
|
||||
int iTableSize_Head_Biggest = 0;
|
||||
getTableSize_Head_Biggest(iTableSize_Head_Biggest);
|
||||
// //自定义滚动条(头)
|
||||
// int iTableSize_Head_Biggest = 0;
|
||||
// getTableSize_Head_Biggest(iTableSize_Head_Biggest);
|
||||
//int iTableWellTrack_height_Biggest = ui->tableWidget_2->rowHeight(0) + (5) + iTableSize_Head_Biggest -1;
|
||||
|
||||
// ui->verticalScrollBar_2->setRange(0, iTableSize_Head_Biggest-100-100);
|
||||
|
|
@ -344,6 +344,15 @@ void MainWindowCurve::resizeWindow()
|
|||
//2个滚动条位置
|
||||
void MainWindowCurve::SetScrollBar_Geometry()
|
||||
{
|
||||
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())
|
||||
{
|
||||
|
|
@ -356,14 +365,19 @@ void MainWindowCurve::SetScrollBar_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(), geoRect.height()+geoRect2.height()-iTableWellTrack_height-2);
|
||||
ui->verticalScrollBar->setGeometry(geoRect.x(), geoRect2.y()+iTableWellTrack_height+2, geoRect.width(), iScreenHeight-iTableWellTrack_height-2);
|
||||
//ui->verticalScrollBar->setGeometry(geoRect.x(), geoRect2.y()+iTableWellTrack_height+2, geoRect.width(), geoRect.height()+geoRect2.height()-iTableWellTrack_height-2);
|
||||
|
||||
//自定义滚动条(头)
|
||||
int iTableSize_Head_Biggest = 0;
|
||||
getTableSize_Head_Biggest(iTableSize_Head_Biggest);
|
||||
int iTableSize_Head1 = 0;
|
||||
int iTableSize_Head2 = 0;
|
||||
getTableSize_Head_Biggest(iTableSize_Head_Biggest, iTableSize_Head1, iTableSize_Head2);
|
||||
//int iTableWellTrack_height_Biggest = ui->tableWidget_2->rowHeight(0) + (5) + iTableSize_Head_Biggest -1;
|
||||
m_iTableSize_Head2 = iTableSize_Head2;
|
||||
|
||||
ui->verticalScrollBar_2->setRange(0, iTableSize_Head_Biggest-100-100);
|
||||
//ui->verticalScrollBar_2->setRange(0, iTableSize_Head_Biggest - 100 -100);
|
||||
ui->verticalScrollBar_2->setRange(0, iTableSize_Head_Biggest - iTableSize_Head);
|
||||
ui->verticalScrollBar_2->setValue(0);
|
||||
//connect(ui->verticalScrollBar_2, SIGNAL(valueChanged(int)), this, SLOT(vertScrollBarChanged_Head(int)));
|
||||
}
|
||||
|
|
@ -375,7 +389,8 @@ void MainWindowCurve::SetScrollBar_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(), geoRect.height()+geoRect2.height());
|
||||
ui->verticalScrollBar->setGeometry(geoRect.x(), geoRect2.y(), geoRect.width(), iScreenHeight);
|
||||
//ui->verticalScrollBar->setGeometry(geoRect.x(), geoRect2.y(), geoRect.width(), geoRect.height()+geoRect2.height());
|
||||
|
||||
//
|
||||
// //获取井well前2行的高度
|
||||
|
|
@ -497,7 +512,7 @@ void MainWindowCurve::vertScrollBarChanged_Head(int value)
|
|||
{
|
||||
widgetWell->getRowHeight_Well(iHight1, iHight2, iHight3);
|
||||
//
|
||||
widgetWell->setRowHeight_Well(iHight1, 100+value, iHight3);
|
||||
widgetWell->setRowHeight_Well(iHight1, m_iTableSize_Head2+value, iHight3);
|
||||
//widgetWell->update();
|
||||
}
|
||||
}
|
||||
|
|
@ -4427,7 +4442,13 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName, bool bS
|
|||
widgetWell->m_iY2 = m_iY2;
|
||||
widgetWell->m_strUuid = m_strUuid;
|
||||
widgetWell->m_strSlfName = strSlfName;
|
||||
widgetWell->m_nObjLyrH = m_nObjLayerH;
|
||||
if(m_iTableSize_Head2>m_nObjLayerH)
|
||||
{
|
||||
widgetWell->m_nObjLyrH = m_iTableSize_Head2; //m_nObjLayerH;
|
||||
}
|
||||
else{
|
||||
widgetWell->m_nObjLyrH = m_nObjLayerH;
|
||||
}
|
||||
widgetWell->m_nObjDrawH = m_nObjDrawH;
|
||||
widgetWell->m_iScale = m_iScale;
|
||||
widgetWell->setWellHeader(wellH);
|
||||
|
|
@ -4445,6 +4466,9 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName, bool bS
|
|||
}
|
||||
}
|
||||
|
||||
//道头滚动条
|
||||
//vertScrollBarChanged_Head(0);
|
||||
|
||||
//ui->tableWidget_2->resizeColumnsToContents(); // 调整列宽以适应内容
|
||||
|
||||
// 设置右键菜单策略
|
||||
|
|
@ -6445,7 +6469,7 @@ void MainWindowCurve::getTableSize_Head(int &iHight)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindowCurve::getTableSize_Head_Biggest(int &iHight)
|
||||
void MainWindowCurve::getTableSize_Head_Biggest(int &iHight, int &iHight1, int &iHight2)
|
||||
{
|
||||
//获取可视视图大小 well井
|
||||
iHight = 0;
|
||||
|
|
@ -6482,10 +6506,14 @@ void MainWindowCurve::getTableSize_Head_Biggest(int &iHight)
|
|||
if(widgetWell)
|
||||
{
|
||||
int iHight_Tmp = 0;
|
||||
widgetWell->getTableSize_Head_Biggest(iHight_Tmp);
|
||||
int iHight1_Tmp = 0;
|
||||
int iHight2_Tmp = 0;
|
||||
widgetWell->getTableSize_Head_Biggest(iHight_Tmp, iHight1_Tmp, iHight2_Tmp);
|
||||
if(iHight_Tmp>iHight)
|
||||
{
|
||||
iHight = iHight_Tmp;
|
||||
iHight1 = iHight1_Tmp;
|
||||
iHight2 = iHight2_Tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6645,7 +6673,9 @@ void MainWindowCurve::ShowTableHead_All()
|
|||
{
|
||||
//展示所有遮挡的FormInfo头
|
||||
int iTableSize_Head_Biggest = 0;
|
||||
getTableSize_Head_Biggest(iTableSize_Head_Biggest);
|
||||
int iTableSize_Head1 = 0;
|
||||
int iTableSize_Head2 = 0;
|
||||
getTableSize_Head_Biggest(iTableSize_Head_Biggest, iTableSize_Head1, iTableSize_Head2);
|
||||
//
|
||||
int columnCount = ui->tableWidget_2->columnCount();//总列数
|
||||
for(int i=0; i<columnCount; i++)
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ protected:
|
|||
public:
|
||||
void resizeItem(QString strWellName, double tempWidth, double tempHight);
|
||||
void getTableSize_Head(int &iHight);
|
||||
void getTableSize_Head_Biggest(int &iHight);//展开FormIndo后,获取真正的高度最大值
|
||||
void getTableSize_Head_Biggest(int &iHight, int &iHight1, int &iHight2);//展开FormIndo后,获取真正的高度最大值
|
||||
void setTableSize_Well();
|
||||
//隐藏道头/对象头
|
||||
void HideTableHead();
|
||||
|
|
@ -113,6 +113,7 @@ public:
|
|||
bool m_bShowTrackHead = true; //显示道头
|
||||
//预览图
|
||||
bool g_bPreviewPrint = false;
|
||||
int m_iTableSize_Head2 = 104;
|
||||
public:
|
||||
//黑白图,针对共享内存,使用老版本代码,需要以下定义
|
||||
//整图放大缩小比例
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@
|
|||
QMyTableWidget::QMyTableWidget(QWidget *parent) :
|
||||
QTableWidget(parent)
|
||||
{
|
||||
m_parent = parent;
|
||||
|
||||
//setSelectionBehavior(QAbstractItemView::SelectColumns); //拖动列
|
||||
setAcceptDrops(true);
|
||||
|
||||
|
|
@ -225,3 +227,14 @@ void QMyTableWidget::performDrag()
|
|||
//
|
||||
}
|
||||
}
|
||||
|
||||
void QMyTableWidget::setRowHeight(int row, int height)
|
||||
{
|
||||
//qDebug()<<"QMyTableWidget setRowHeight!";
|
||||
|
||||
|
||||
FormWell *parent = (FormWell *)m_parent;
|
||||
parent->m_bSetRowHeight = true; //手工设置行高
|
||||
|
||||
QTableWidget::setRowHeight(row, height);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,8 @@ class QMyTableWidget : public QTableWidget
|
|||
Q_OBJECT
|
||||
public:
|
||||
explicit QMyTableWidget(QWidget *parent = 0);
|
||||
|
||||
void setRowHeight(int row, int height);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
void mouseMoveEvent(QMouseEvent *event);
|
||||
|
|
@ -26,6 +27,8 @@ private:
|
|||
void performDrag();
|
||||
|
||||
public:
|
||||
QWidget *m_parent;
|
||||
|
||||
QPoint startPos;
|
||||
int m_selectCol;//鼠标选择拖动的位置
|
||||
int m_hoverCol;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user