追加放大、缩小功能,目前简化为针对道宽的放大缩小。深度依然采用比例尺,不然深度比例容易混乱

This commit is contained in:
jiayulong 2026-05-21 16:34:31 +08:00
parent 0e9fdeab6e
commit d0c4bbc89f
5 changed files with 132 additions and 31 deletions

View File

@ -673,6 +673,55 @@ int FormWell::setColWidth(int iCurrentCol, float fWidth)
return iWellWidth; return iWellWidth;
} }
int FormWell::setColWidth_ZoomIn(float fNewZoom)
{
int newColCount = ui->tableWidget->columnCount();
for (int i = 0; i < newColCount; i++)
{
int iCurrentCol = i;
auto topWidget = ui->tableWidget->cellWidget(0, iCurrentCol);
if(topWidget)
{
FormTrackTop *formTop = qobject_cast<FormTrackTop*>(topWidget);//获得widget
if(formTop)
{
float fWidth = formTop->m_nTrackW * fNewZoom;//放大
int iNewWidth = static_cast<int>(fWidth * g_dPixelPerCm);
//设置列宽
ui->tableWidget->setColumnWidth(iCurrentCol, iNewWidth);
formTop->m_nTrackW = fWidth;
//-------------------------------------
auto myWidget = ui->tableWidget->cellWidget(2, iCurrentCol);
if(myWidget)
{
//
FormDraw *formDraw = qobject_cast<FormDraw*>(myWidget);//获得widget
if(formDraw)
{
if (formDraw->m_formTrack)
{
formDraw->m_formTrack->setFixedWidth(iNewWidth);
}
formDraw->setColWidth(fWidth);
}
}
}
}
}
//计算井宽
int iWellWidth = 0;
int columnCount = ui->tableWidget->columnCount();//总列数
for(int i=0; i<columnCount; i++)
{
iWellWidth += ui->tableWidget->columnWidth(i);
}
return iWellWidth;
}
void FormWell::setWellProperty(QVariantList listVal) void FormWell::setWellProperty(QVariantList listVal)
{ {
QString strGroup = listVal.at(0).toString(); QString strGroup = listVal.at(0).toString();

View File

@ -78,6 +78,7 @@ public:
void setRowHeight(double dHight, QProgressBar *progressBar, int iSplit); void setRowHeight(double dHight, QProgressBar *progressBar, int iSplit);
//设置道宽 //设置道宽
int setColWidth(int iCurrentCol, float iNewWidth); int setColWidth(int iCurrentCol, float iNewWidth);
int setColWidth_ZoomIn(float fNewZoom);
void setWellProperty(QVariantList listVal); void setWellProperty(QVariantList listVal);

View File

@ -362,9 +362,8 @@ void MainWindowCurve::initMainToolBar()
ui->mainToolBar->setIconSize(toolIconSize); //设置工具栏图标大小 ui->mainToolBar->setIconSize(toolIconSize); //设置工具栏图标大小
ui->mainToolBar->setStyleSheet("QToolButton:checked { background-color: rgb(188,216,239); }"); ui->mainToolBar->setStyleSheet("QToolButton:checked { background-color: rgb(188,216,239); }");
QIcon selectWellIcon(::GetImagePath()+"icon/WellTops.png"); QIcon selectWellIcon(::GetImagePath()+"icon/SelectWells.png");
QIcon fixwellsectionHeaderIcon(::GetImagePath()+"icon/fixwellsectionHeader.png"); QIcon fixwellsectionHeaderIcon(::GetImagePath()+"icon/fixwellsectionHeader.png");
QIcon currtempliteIcon(::GetImagePath()+"icon/currtemplite.png");
QIcon saveastemplateIcon(::GetImagePath()+"icon/SaveAsTemplate.png"); QIcon saveastemplateIcon(::GetImagePath()+"icon/SaveAsTemplate.png");
QIcon executeDepthShiftIcon(::GetImagePath()+"icon/ExecuteDepthShift.png"); QIcon executeDepthShiftIcon(::GetImagePath()+"icon/ExecuteDepthShift.png");
QIcon joindepthIcon(::GetImagePath()+"icon/joindepth.png"); QIcon joindepthIcon(::GetImagePath()+"icon/joindepth.png");
@ -375,40 +374,44 @@ void MainWindowCurve::initMainToolBar()
QIcon doubleHeadIcon(::GetImagePath()+"icon/oneortwohead.png"); QIcon doubleHeadIcon(::GetImagePath()+"icon/oneortwohead.png");
QIcon autorollIcon(::GetImagePath()+"icon/autoroll.png"); QIcon autorollIcon(::GetImagePath()+"icon/autoroll.png");
QIcon blackIcon(::GetImagePath()+"icon/image/black.png"); QIcon blackIcon(::GetImagePath()+"icon/image/black.png");
QIcon zoominIcon(::GetImagePath()+"icon/zoomin.png");
QIcon zoomoutIcon(::GetImagePath()+"icon/zoomout.png");
//Main工具栏 //Main工具栏
m_selectWellAc = new QAction(selectWellIcon, "选择", this); m_selectWellAc = new QAction(selectWellIcon, "设置", this);
m_fixwellsectionHeaderAc = new QAction(fixwellsectionHeaderIcon, "锁头", this); m_fixwellsectionHeaderAc = new QAction(fixwellsectionHeaderIcon, "锁头", this);
m_currtempliteAc = new QAction(currtempliteIcon, "加载图文件", this);
m_saveastemplateAc = new QAction(saveastemplateIcon, "另存为图文件", this); m_saveastemplateAc = new QAction(saveastemplateIcon, "另存为图文件", this);
m_zoominAc = new QAction(zoominIcon, "放大", this);
m_zoomoutAc = new QAction(zoomoutIcon, "缩小", this);
m_SaveAsPictureAc = new QAction(SaveAsPictureIcon, "导出长图", this);
m_SaveAsPdfAc = new QAction(SaveAsPdfIcon, "导出PDF", this);
m_SaveAsSvgAc = new QAction(SaveAsSvgIcon, "导出SVG", this);
m_blackAc = new QAction(blackIcon, "黑白图", this); m_blackAc = new QAction(blackIcon, "黑白图", this);
m_doubleHeadAc = new QAction(doubleHeadIcon, "单曲线头", this); m_doubleHeadAc = new QAction(doubleHeadIcon, "单曲线头", this);
m_executeDepthShiftAc = new QAction(executeDepthShiftIcon, "校深", this); m_executeDepthShiftAc = new QAction(executeDepthShiftIcon, "校深", this);
m_joindepthAc = new QAction(joindepthIcon, "拼接", this); m_joindepthAc = new QAction(joindepthIcon, "拼接", this);
m_autorollAc = new QAction(autorollIcon, "图像自滚", this); m_autorollAc = new QAction(autorollIcon, "图像自滚", this);
m_ModuleOpenAc = new QAction(ModuleOpenIcon, "处理方法", this); m_ModuleOpenAc = new QAction(ModuleOpenIcon, "处理方法", this);
m_SaveAsPictureAc = new QAction(SaveAsPictureIcon, "导出长图", this);
m_SaveAsPdfAc = new QAction(SaveAsPdfIcon, "导出PDF", this);
m_SaveAsSvgAc = new QAction(SaveAsSvgIcon, "导出SVG", this);
ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //此种方式为文字显示在图标右侧 ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //此种方式为文字显示在图标右侧
//add QAction to Widget. //add QAction to Widget.
ui->mainToolBar->addAction(m_selectWellAc); ui->mainToolBar->addAction(m_selectWellAc);
ui->mainToolBar->addAction(m_fixwellsectionHeaderAc); //锁头 ui->mainToolBar->addAction(m_fixwellsectionHeaderAc); //锁头
//ui->mainToolBar->addAction(m_currtempliteAc);
ui->mainToolBar->addAction(m_saveastemplateAc); //另存为图文件 ui->mainToolBar->addAction(m_saveastemplateAc); //另存为图文件
ui->mainToolBar->addSeparator(); ui->mainToolBar->addSeparator();
ui->mainToolBar->addAction(m_zoominAc); //放大
ui->mainToolBar->addAction(m_zoomoutAc); //缩小
ui->mainToolBar->addAction(m_SaveAsPictureAc); //导出长图
ui->mainToolBar->addAction(m_SaveAsPdfAc); //导出PDF
ui->mainToolBar->addAction(m_SaveAsSvgAc); //导出SVG
ui->mainToolBar->addSeparator();
ui->mainToolBar->addAction(m_blackAc); //黑白图 ui->mainToolBar->addAction(m_blackAc); //黑白图
ui->mainToolBar->addAction(m_doubleHeadAc); //单曲线头 ui->mainToolBar->addAction(m_doubleHeadAc); //单曲线头
ui->mainToolBar->addAction(m_executeDepthShiftAc); //校深 ui->mainToolBar->addAction(m_executeDepthShiftAc); //校深
ui->mainToolBar->addAction(m_joindepthAc); //拼接 ui->mainToolBar->addAction(m_joindepthAc); //拼接
ui->mainToolBar->addAction(m_autorollAc); //图像自滚 ui->mainToolBar->addAction(m_autorollAc); //图像自滚
ui->mainToolBar->addAction(m_ModuleOpenAc); //处理方法 ui->mainToolBar->addAction(m_ModuleOpenAc); //处理方法
ui->mainToolBar->addSeparator();
ui->mainToolBar->addAction(m_SaveAsPictureAc); //导出长图
ui->mainToolBar->addAction(m_SaveAsPdfAc); //导出PDF
ui->mainToolBar->addAction(m_SaveAsSvgAc); //导出SVG
// 设置为可选中 // 设置为可选中
m_fixwellsectionHeaderAc->setCheckable(true); //锁头 m_fixwellsectionHeaderAc->setCheckable(true); //锁头
@ -420,19 +423,20 @@ void MainWindowCurve::initMainToolBar()
connect(m_selectWellAc, &QAction::triggered, this, &MainWindowCurve::s_selectWell); connect(m_selectWellAc, &QAction::triggered, this, &MainWindowCurve::s_selectWell);
connect(m_fixwellsectionHeaderAc, &QAction::triggered, this, &MainWindowCurve::s_showHeadTable); connect(m_fixwellsectionHeaderAc, &QAction::triggered, this, &MainWindowCurve::s_showHeadTable);
connect(m_currtempliteAc, &QAction::triggered, this, &MainWindowCurve::s_currtemplite);
connect(m_saveastemplateAc, &QAction::triggered, this, &MainWindowCurve::s_Save); connect(m_saveastemplateAc, &QAction::triggered, this, &MainWindowCurve::s_Save);
connect(m_zoominAc, &QAction::triggered, this, &MainWindowCurve::s_ZoomIn);
connect(m_zoomoutAc, &QAction::triggered, this, &MainWindowCurve::s_ZoomOut);
connect(m_SaveAsPictureAc, &QAction::triggered, this, &MainWindowCurve::s_SaveAsPicture);
connect(m_SaveAsPdfAc, &QAction::triggered, this, &MainWindowCurve::s_SaveAsPdf);
connect(m_SaveAsSvgAc, &QAction::triggered, this, &MainWindowCurve::s_SaveAsSvg);
connect(m_blackAc, &QAction::triggered, this, &MainWindowCurve::s_Black); connect(m_blackAc, &QAction::triggered, this, &MainWindowCurve::s_Black);
connect(m_doubleHeadAc, &QAction::triggered, this, &MainWindowCurve::s_DoubleHead); connect(m_doubleHeadAc, &QAction::triggered, this, &MainWindowCurve::s_DoubleHead);
connect(m_executeDepthShiftAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteDepthShift); connect(m_executeDepthShiftAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteDepthShift);
connect(m_joindepthAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteMerge); connect(m_joindepthAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteMerge);
connect(m_autorollAc, &QAction::triggered, this, &MainWindowCurve::s_Autoroll); connect(m_autorollAc, &QAction::triggered, this, &MainWindowCurve::s_Autoroll);
connect(m_ModuleOpenAc, &QAction::triggered, this, &MainWindowCurve::s_ModuleOpen); connect(m_ModuleOpenAc, &QAction::triggered, this, &MainWindowCurve::s_ModuleOpen);
connect(m_SaveAsPictureAc, &QAction::triggered, this, &MainWindowCurve::s_SaveAsPicture);
connect(m_SaveAsPdfAc, &QAction::triggered, this, &MainWindowCurve::s_SaveAsPdf);
connect(m_SaveAsSvgAc, &QAction::triggered, this, &MainWindowCurve::s_SaveAsSvg);
connect(CallManage::getInstance(), SIGNAL(sig_SaveAsPicture()), this, SLOT(s_SaveAsPicture())); connect(CallManage::getInstance(), SIGNAL(sig_SaveAsPicture()), this, SLOT(s_SaveAsPicture()));
connect(CallManage::getInstance(), SIGNAL(sig_SaveAsPdf()), this, SLOT(s_SaveAsPdf())); connect(CallManage::getInstance(), SIGNAL(sig_SaveAsPdf()), this, SLOT(s_SaveAsPdf()));
@ -2639,11 +2643,6 @@ void MainWindowCurve::loadStyle(const QString &qssFile)
} }
} }
void MainWindowCurve::s_currtemplite()
{
}
void MainWindowCurve::s_Save() void MainWindowCurve::s_Save()
{ {
//Logdata //Logdata
@ -2796,6 +2795,53 @@ void MainWindowCurve::s_ModuleOpen()
m_pParentWin->setModuleOpenOrClose(); m_pParentWin->setModuleOpenOrClose();
} }
//缩放
void MainWindowCurve::ZoomIn(float fNewZoom)
{
int columnCount = ui->tableWidget_2->columnCount();//总列数
for(int i=0; i<columnCount; i++)
{
if(i%2==0)
{
}
else
{
//空白列
continue;
}
if( ui->tableWidget_2->cellWidget(1, i) != nullptr )
{
auto myWidget = ui->tableWidget_2->cellWidget(1, i);
if(myWidget)
{
//
FormWell *widgetWell = (FormWell*)myWidget;//获得widget
if(widgetWell)
{
int iWellWidth = widgetWell->setColWidth_ZoomIn(fNewZoom);
//调整井宽
ui->tableWidget_2->setColumnWidth(i, iWellWidth);
}
}
}
}
}
//放大
void MainWindowCurve::s_ZoomIn()
{
//宽度放大
ZoomIn(1.1);
}
//缩小
void MainWindowCurve::s_ZoomOut()
{
//宽度缩小
ZoomIn(0.9);
}
//导出长图 //导出长图
void MainWindowCurve::s_SaveAsPicture() void MainWindowCurve::s_SaveAsPicture()

View File

@ -209,17 +209,18 @@ public slots:
public: public:
QAction* m_selectWellAc = nullptr; //选择井 QAction* m_selectWellAc = nullptr; //选择井
QAction* m_fixwellsectionHeaderAc = nullptr; //锁头 QAction* m_fixwellsectionHeaderAc = nullptr; //锁头
QAction* m_currtempliteAc = nullptr; //加载图文件
QAction* m_saveastemplateAc = nullptr; //另存为图文件 QAction* m_saveastemplateAc = nullptr; //另存为图文件
QAction* m_zoominAc = nullptr; //放大
QAction* m_zoomoutAc = nullptr; //缩小
QAction* m_SaveAsPictureAc = nullptr; //导出长图
QAction* m_SaveAsPdfAc = nullptr; //导出PDF
QAction* m_SaveAsSvgAc = nullptr; //导出SVG
QAction* m_blackAc = nullptr; //黑白图 QAction* m_blackAc = nullptr; //黑白图
QAction* m_doubleHeadAc = nullptr; //单曲线头 QAction* m_doubleHeadAc = nullptr; //单曲线头
QAction* m_executeDepthShiftAc = nullptr; //校深 QAction* m_executeDepthShiftAc = nullptr; //校深
QAction* m_joindepthAc = nullptr; //拼接 QAction* m_joindepthAc = nullptr; //拼接
QAction* m_autorollAc = nullptr; //图像自滚 QAction* m_autorollAc = nullptr; //图像自滚
QAction* m_ModuleOpenAc = nullptr; //处理方法 QAction* m_ModuleOpenAc = nullptr; //处理方法
QAction* m_SaveAsPictureAc = nullptr; //导出长图
QAction* m_SaveAsPdfAc = nullptr; //导出PDF
QAction* m_SaveAsSvgAc = nullptr; //导出SVG
public slots: public slots:
void s_NewWell(QString strWellName, QString strSlfName);//新建井 void s_NewWell(QString strWellName, QString strSlfName);//新建井
@ -297,17 +298,18 @@ public slots:
// //
void s_selectWell(); //选择井 void s_selectWell(); //选择井
void s_showHeadTable(); //显示/隐藏图头 void s_showHeadTable(); //显示/隐藏图头
void s_currtemplite(); //加载图文件
void s_Save(); //保存图文件 void s_Save(); //保存图文件
void s_SaveAsPicture(); //导出长图
void s_SaveAsPdf(); //导出PDF
void s_SaveAsSvg(); //导出SVG
void s_ZoomIn(); //放大
void s_ZoomOut(); //缩小
void s_Black(); //黑白图 void s_Black(); //黑白图
void s_DoubleHead(); //单曲线头 void s_DoubleHead(); //单曲线头
void s_ExecuteDepthShift(); //校深 void s_ExecuteDepthShift(); //校深
void s_ExecuteMerge(); //拼接 void s_ExecuteMerge(); //拼接
void s_Autoroll(); //图像自滚 void s_Autoroll(); //图像自滚
void s_ModuleOpen(); //处理算法 void s_ModuleOpen(); //处理算法
void s_SaveAsPicture(); //导出长图
void s_SaveAsPdf(); //导出PDF
void s_SaveAsSvg(); //导出SVG
// //
void _slotExport(QPrinter &printer, int IsBmp, QString pngName, QString strTmpName); void _slotExport(QPrinter &printer, int IsBmp, QString pngName, QString strTmpName);
//打印出图,改变深度 //打印出图,改变深度
@ -315,6 +317,9 @@ public slots:
//图像自滚,定时器处理 //图像自滚,定时器处理
void onTimer(); void onTimer();
//缩放
void ZoomIn(float fNewZoom);
}; };
#endif // MAINWINDOWCURVE_H #endif // MAINWINDOWCURVE_H

View File

@ -11,7 +11,7 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>选择井</string> <string>设置井</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="0" column="0">