From bc3cebbd1afee33917030072462965192ea86f88 Mon Sep 17 00:00:00 2001 From: jiayulong Date: Wed, 15 Apr 2026 18:50:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=93=E5=A4=B4=E9=AB=98=E5=BA=A6=E5=8F=AF?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E6=8B=96=E5=8A=A8=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E9=AB=98=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/formwell.cpp | 41 +++++++++++++++++--- logPlus/formwell.h | 4 +- logPlus/mainwindowcurve.cpp | 74 +++++++++++++++++++++++++++++++++++++ logPlus/mainwindowcurve.h | 1 + 4 files changed, 114 insertions(+), 6 deletions(-) diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index fc1cc46..2b65ebf 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -29,11 +29,11 @@ FormWell::FormWell(QWidget *parent, QString strWellName) : m_xiProperty.m_clor = QColor(208,208,208); - ui->tableWidget->verticalHeader()->hide(); //行 + //ui->tableWidget->verticalHeader()->hide(); //行 ui->tableWidget->horizontalHeader()->hide();//列 int rowcount = 3; //总行数 ui->tableWidget->setRowCount(rowcount); //动态设置行数 - //ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度 + ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度 ui->tableWidget->horizontalHeader()->setFixedHeight(3); ui->tableWidget->setShowGrid(false); @@ -901,13 +901,44 @@ void FormWell::getTableSize_Head(int &iHight) //获取可视视图大小 tableWidget iHight = 0; - for(int i=0; i<2; i++) + if(ui->tableWidget->rowCount()>0) { - //高度 - iHight += ui->tableWidget->rowHeight(i); + for(int i=0; i<2; i++) + { + //高度 + iHight += ui->tableWidget->rowHeight(i); + } } if(iHight == 0) { iHight = 100 + 300; } } + +//获取各行的高度 +void FormWell::getRowHeight_Well(int &iHight1, int &iHight2, int &iHight3) +{ + iHight1 = 0; + iHight2 = 0; + iHight3 = 0; + if(ui->tableWidget->rowCount()>0) + { + //高度 + iHight1 = ui->tableWidget->rowHeight(0); + iHight2 = ui->tableWidget->rowHeight(1); + iHight3 = ui->tableWidget->rowHeight(2); + } +} + +//设置各行的高度 +void FormWell::setRowHeight_Well(int iHight1, int iHight2, int iHight3) +{ + if(ui->tableWidget->rowCount()>0) + { + //高度 + ui->tableWidget->setRowHeight(0, iHight1); + ui->tableWidget->setRowHeight(1, iHight2); + ui->tableWidget->setRowHeight(2, iHight3); + ui->tableWidget->update(); + } +} diff --git a/logPlus/formwell.h b/logPlus/formwell.h index 761e0a9..80d7f8f 100644 --- a/logPlus/formwell.h +++ b/logPlus/formwell.h @@ -86,7 +86,9 @@ public: //获取当前井的所有道名称 QStringList getTrackNameList(); - void getTableSize_Head(int &iHight); + void getTableSize_Head(int &iHight); + void getRowHeight_Well(int &iHight1, int &iHight2, int &iHight3); + void setRowHeight_Well(int iHight1, int iHight2, int iHight3); public slots: //void onTableColumnsInserted(const QModelIndex &parent, int first, int last); diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 15a405f..fcc8507 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -2547,6 +2547,9 @@ void MainWindowCurve::_slotExport(QPrinter &printer, int IsBmp, QString pngName, pPixmap_Tail.save(tmpPath + "pPixmap_Tail.png"); //中间 + //重新设置well表格高度,防止有人拖拽改变高度后,出图高度不一致 + //默认采用第1口井的表格高度 + setTableSize_Well(); m_dock1->hide(); m_dock2->hide(); ui->centralwidget->show(); @@ -4648,6 +4651,17 @@ void MainWindowCurve::getTableSize_Head(int &iHight) //获取可视视图大小 well井 iHight = 0; + int columnCount = ui->tableWidget_2->columnCount();//总列数 + if(columnCount ==0) + { + if(iHight == 0) + { + iHight = 100 + 300; + } + + return; + } + // if( ui->tableWidget_2->cellWidget(1, 0) != nullptr ) { auto myWidget = ui->tableWidget_2->cellWidget(1, 0); @@ -4661,4 +4675,64 @@ void MainWindowCurve::getTableSize_Head(int &iHight) } } } + // + if(iHight == 0) + { + iHight = 100 + 300; + } +} + +//重新设置well表格高度,防止有人拖拽改变高度后,出图高度不一致 +//默认采用第1口井的表格高度 +void MainWindowCurve::setTableSize_Well() +{ + int columnCount = ui->tableWidget_2->columnCount();//总列数 + if(columnCount == 0 || columnCount == 1)//只有1口井不需要操作 + { + return; + } + // + int iHight1=0; + int iHight2=0; + int iHight3=0; + if( ui->tableWidget_2->cellWidget(1, 0) != nullptr ) + { + auto myWidget = ui->tableWidget_2->cellWidget(1, 0); + if(myWidget) + { + // + FormWell *widgetWell = (FormWell*)myWidget;//获得widget + if(widgetWell) + { + widgetWell->getRowHeight_Well(iHight1, iHight2, iHight3); + } + } + } + + for(int i=2; itableWidget_2->cellWidget(1, i) != nullptr ) + { + auto myWidget = ui->tableWidget_2->cellWidget(1, i); + if(myWidget) + { + // + FormWell *widgetWell = (FormWell*)myWidget;//获得widget + if(widgetWell) + { + widgetWell->setRowHeight_Well(iHight1, iHight2, iHight3); + } + } + } + } + } diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index d4c5879..a33f83a 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -45,6 +45,7 @@ protected: public: void resizeItem(QString strWellName, double tempWidth, double tempHight); void getTableSize_Head(int &iHight); + void setTableSize_Well(); public slots: void dragEnterEvent(QDragEnterEvent* event);