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

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;
}
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)
{
QString strGroup = listVal.at(0).toString();

View File

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

View File

@ -362,9 +362,8 @@ void MainWindowCurve::initMainToolBar()
ui->mainToolBar->setIconSize(toolIconSize); //设置工具栏图标大小
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 currtempliteIcon(::GetImagePath()+"icon/currtemplite.png");
QIcon saveastemplateIcon(::GetImagePath()+"icon/SaveAsTemplate.png");
QIcon executeDepthShiftIcon(::GetImagePath()+"icon/ExecuteDepthShift.png");
QIcon joindepthIcon(::GetImagePath()+"icon/joindepth.png");
@ -375,40 +374,44 @@ void MainWindowCurve::initMainToolBar()
QIcon doubleHeadIcon(::GetImagePath()+"icon/oneortwohead.png");
QIcon autorollIcon(::GetImagePath()+"icon/autoroll.png");
QIcon blackIcon(::GetImagePath()+"icon/image/black.png");
QIcon zoominIcon(::GetImagePath()+"icon/zoomin.png");
QIcon zoomoutIcon(::GetImagePath()+"icon/zoomout.png");
//Main工具栏
m_selectWellAc = new QAction(selectWellIcon, "选择", this);
m_selectWellAc = new QAction(selectWellIcon, "设置", this);
m_fixwellsectionHeaderAc = new QAction(fixwellsectionHeaderIcon, "锁头", this);
m_currtempliteAc = new QAction(currtempliteIcon, "加载图文件", 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_doubleHeadAc = new QAction(doubleHeadIcon, "单曲线头", this);
m_executeDepthShiftAc = new QAction(executeDepthShiftIcon, "校深", this);
m_joindepthAc = new QAction(joindepthIcon, "拼接", this);
m_autorollAc = new QAction(autorollIcon, "图像自滚", 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); //此种方式为文字显示在图标右侧
//add QAction to Widget.
ui->mainToolBar->addAction(m_selectWellAc);
ui->mainToolBar->addAction(m_fixwellsectionHeaderAc); //锁头
//ui->mainToolBar->addAction(m_currtempliteAc);
ui->mainToolBar->addAction(m_saveastemplateAc); //另存为图文件
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_doubleHeadAc); //单曲线头
ui->mainToolBar->addAction(m_executeDepthShiftAc); //校深
ui->mainToolBar->addAction(m_joindepthAc); //拼接
ui->mainToolBar->addAction(m_autorollAc); //图像自滚
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); //锁头
@ -420,19 +423,20 @@ void MainWindowCurve::initMainToolBar()
connect(m_selectWellAc, &QAction::triggered, this, &MainWindowCurve::s_selectWell);
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_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_doubleHeadAc, &QAction::triggered, this, &MainWindowCurve::s_DoubleHead);
connect(m_executeDepthShiftAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteDepthShift);
connect(m_joindepthAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteMerge);
connect(m_autorollAc, &QAction::triggered, this, &MainWindowCurve::s_Autoroll);
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_SaveAsPdf()), this, SLOT(s_SaveAsPdf()));
@ -2639,11 +2643,6 @@ void MainWindowCurve::loadStyle(const QString &qssFile)
}
}
void MainWindowCurve::s_currtemplite()
{
}
void MainWindowCurve::s_Save()
{
//Logdata
@ -2796,6 +2795,53 @@ void MainWindowCurve::s_ModuleOpen()
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()

View File

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

View File

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