按照合同,可视解释工具栏toolbar追加“显示十字线”按钮

This commit is contained in:
jiayulong 2026-06-02 10:32:53 +08:00
parent 394ce609ed
commit 00a13a6e1a
7 changed files with 109 additions and 5 deletions

View File

@ -178,7 +178,7 @@ signals:
void sig_testPlugin(QString strInfo);
//鼠标移动,通知状态栏显示深度信息
void sig_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep);
void sig_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep, float yPos);
//鼠标滚动,通知可视解释窗口
void sig_mouseWheel(QWheelEvent *event);
@ -204,6 +204,9 @@ signals:
//修改黑白图
void sig_changeBlack(QString strUuid, bool bBlack);
//显示十字线
void sig_showCrossLine(QString strUuid, bool bShowCross);
void sig_changeWellProperty(QString strUuid, QString strSlfName, QString strWellName, QVariantList listVal);
//改变道宽

View File

@ -59,7 +59,8 @@ FormDraw::FormDraw(QWidget *parent, QString strSlfName, QString strWellName, QSt
//改变曲线名
connect(CallManage::getInstance(), SIGNAL(sig_changeLineName(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeLineName(QString, QString, QString, QString, QString, QString)));
connect(CallManage::getInstance(), SIGNAL(sig_MouseMove(QString, QString, QString, float)), this, SLOT(s_MouseMove(QString, QString, QString, float)));
//鼠标移动
connect(CallManage::getInstance(), SIGNAL(sig_MouseMove(QString, QString, QString, float, float)), this, SLOT(s_MouseMove(QString, QString, QString, float, float)));
//波列
connect(CallManage::getInstance(), SIGNAL(sig_AddWave(QString, QString, QString, QString, QString)), this, SLOT(s_addWave(QString, QString, QString, QString, QString)));
connect(CallManage::getInstance(), SIGNAL(sig_delWave(QString, QString, QString, QString)), this, SLOT(s_delWave(QString, QString, QString, QString)));
@ -3903,7 +3904,7 @@ void FormDraw::s_delTableLine(QString strUuid, QString strWellName, QString strT
}
}
void FormDraw::s_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep)
void FormDraw::s_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep, float yPos)
{
//井名&道名不一致
if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName)

View File

@ -270,7 +270,7 @@ public slots:
void s_changeLineName(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName);
void s_delLine(QString strUuid, QString strWellName, QString strTrackName, QString strLineName);
void s_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep);
void s_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep, float yPos);
void s_handleRectRangeChange(QCPRange newRange);
void s_selectionRectAccepted(const QRect &rect, QMouseEvent *event);

View File

@ -649,6 +649,7 @@ void MainWindowCurve::initMainToolBar()
QIcon SaveAsPdfIcon(::GetImagePath()+"icon/ExportPDF.png");
QIcon SaveAsSvgIcon(::GetImagePath()+"icon/ExportSVG.png");
QIcon doubleHeadIcon(::GetImagePath()+"icon/oneortwohead.png");
QIcon crossIcon(::GetImagePath()+"icon/Cross.png");
QIcon autorollIcon(::GetImagePath()+"icon/autoroll.png");
QIcon blackIcon(::GetImagePath()+"icon/black.png");
QIcon zoominIcon(::GetImagePath()+"icon/zoomin.png");
@ -668,6 +669,7 @@ void MainWindowCurve::initMainToolBar()
m_doubleHeadAc = new QAction(doubleHeadIcon, "单曲线头", this);
m_executeDepthShiftAc = new QAction(executeDepthShiftIcon, "校深", this);
m_joindepthAc = new QAction(joindepthIcon, "拼接", this);
m_ShowCrossLineAc = new QAction(crossIcon, "显示十字线", this);
m_autorollAc = new QAction(autorollIcon, "图像自滚", this);
m_PreviewPrintAc = new QAction(blackIcon, "预览图", this);
m_ModuleOpenAc = new QAction(ModuleOpenIcon, "处理方法", this);
@ -690,6 +692,7 @@ void MainWindowCurve::initMainToolBar()
ui->mainToolBar->addAction(m_doubleHeadAc); //单曲线头
ui->mainToolBar->addAction(m_executeDepthShiftAc); //校深
ui->mainToolBar->addAction(m_joindepthAc); //拼接
ui->mainToolBar->addAction(m_ShowCrossLineAc); //显示十字线
ui->mainToolBar->addAction(m_autorollAc); //图像自滚
ui->mainToolBar->addAction(m_PreviewPrintAc); //预览图
ui->mainToolBar->addAction(m_ModuleOpenAc); //处理方法
@ -701,6 +704,7 @@ void MainWindowCurve::initMainToolBar()
m_doubleHeadAc->setCheckable(true); //单曲线头
m_executeDepthShiftAc->setCheckable(true); //校深
m_joindepthAc->setCheckable(true); //拼接
m_ShowCrossLineAc->setCheckable(true); //显示十字线
m_autorollAc->setCheckable(true); //图像自滚
m_PreviewPrintAc->setCheckable(true); //预览图
@ -719,6 +723,7 @@ void MainWindowCurve::initMainToolBar()
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_ShowCrossLineAc, &QAction::triggered, this, &MainWindowCurve::s_ShowCrossLine);
connect(m_autorollAc, &QAction::triggered, this, &MainWindowCurve::s_Autoroll);
connect(m_PreviewPrintAc, &QAction::triggered, this, &MainWindowCurve::s_PreviewPrint);
connect(m_ModuleOpenAc, &QAction::triggered, this, &MainWindowCurve::s_ModuleOpen);
@ -3051,6 +3056,19 @@ void MainWindowCurve::s_DoubleHead()
}
//显示十字线
void MainWindowCurve::s_ShowCrossLine()
{
//
bool bShowCross = false;
if(m_ShowCrossLineAc->isChecked())
{
bShowCross = true;
}
emit CallManage::getInstance()->sig_showCrossLine(m_strUuid, bShowCross);
}
//图像自滚
void MainWindowCurve::s_Autoroll()
{

View File

@ -245,6 +245,7 @@ public:
QAction* m_doubleHeadAc = nullptr; //单曲线头
QAction* m_executeDepthShiftAc = nullptr; //校深
QAction* m_joindepthAc = nullptr; //拼接
QAction* m_ShowCrossLineAc = nullptr; //显示十字线
QAction* m_autorollAc = nullptr; //图像自滚
QAction* m_PreviewPrintAc = nullptr; //预览图
QAction* m_ModuleOpenAc = nullptr; //处理方法
@ -336,6 +337,7 @@ public slots:
void s_DoubleHead(); //单曲线头
void s_ExecuteDepthShift(); //校深
void s_ExecuteMerge(); //拼接
void s_ShowCrossLine(); //显示十字线
void s_Autoroll(); //图像自滚
void s_PreviewPrint(); //预览图
void s_ModuleOpen(); //处理算法

View File

@ -264,6 +264,11 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel
connect(CallManage::getInstance(), SIGNAL(sig_changeMCalsProperty(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeMCalsProperty(QString, QString, QString, QString, QString, QString)));
//黑白图
connect(CallManage::getInstance(), SIGNAL(sig_changeBlack(QString, bool)), this, SLOT(s_changeBlack(QString, bool)));
//显示十字线
connect(CallManage::getInstance(), SIGNAL(sig_showCrossLine(QString, bool)), this, SLOT(s_showCrossLine(QString, bool)));
//鼠标移动
connect(CallManage::getInstance(), SIGNAL(sig_MouseMove(QString, QString, QString, float, float)), this, SLOT(s_MouseMove(QString, QString, QString, float, float)));
}
void QMyCustomPlot::initGeometry(QString strUuid, int nscale, double fW)
@ -877,7 +882,7 @@ void QMyCustomPlot::mouseMoveEvent(QMouseEvent *event)
else
y_val = yAxis->pixelToCoord(y_pos);
//qDebug() << "MouseMove pixel:" << y_pos << "Y轴: " << y_val;
emit CallManage::getInstance()->sig_MouseMove(m_strUuid, m_strWellName, m_strTrackName, 0-y_val);
emit CallManage::getInstance()->sig_MouseMove(m_strUuid, m_strWellName, m_strTrackName, 0-y_val, y_pos);
}
}
@ -13392,6 +13397,35 @@ void QMyCustomPlot::Draw_MCals(QString strLineName, QString strNewLineName)
this->replot();
}
void QMyCustomPlot::s_showCrossLine(QString strUuid, bool bShowCross)
{
if(m_strUuid==strUuid)
{
}
else
{
return;
}
if(!m_qcpItemLineCross)
{
//画1条横线
m_qcpItemLineCross = new QCPItemStraightLine(this);
m_qcpItemLineCross->setPen(QPen(Qt::red, 1));
}
m_bShowCross = bShowCross;
if(m_bShowCross)
{
m_qcpItemLineCross->setVisible(true);
}
else
{
m_qcpItemLineCross->setVisible(false);
replot();
}
}
void QMyCustomPlot::s_changeBlack(QString strUuid, bool bBlack)
{
if(m_strUuid==strUuid)
@ -13474,3 +13508,38 @@ void QMyCustomPlot::s_changeBlack(QString strUuid, bool bBlack)
//
replot();
}
void QMyCustomPlot::s_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep, float yPos)
{
//井名&道名不一致
if(strUuid == m_strUuid)
{
}
else
{
return;
}
if(m_bShowCross)
{
if (this->m_bX2Y == true)
{
float upper = this->yAxis->range().upper;
float lower = this->yAxis->range().lower;
m_qcpItemLineCross->point1->setCoords(-dep, lower);//位置
m_qcpItemLineCross->point2->setCoords(-dep, upper);//位置
}
else
{
float upper = this->xAxis->range().upper;
float lower = this->xAxis->range().lower;
m_qcpItemLineCross->point1->setCoords(lower, -dep);//位置
m_qcpItemLineCross->point2->setCoords(upper, -dep);//位置
}
replot();
}
}

View File

@ -386,6 +386,9 @@ public:
QCPItemPixmap *mPixmap_tx = nullptr; //图像
//十字线
QCPItemStraightLine *m_qcpItemLineCross=nullptr;
signals:
//信号槽刷新
void sig_replot();
@ -711,6 +714,11 @@ public slots:
//修改黑白图
void s_changeBlack(QString strUuid, bool bBlack);
//显示十字线
void s_showCrossLine(QString strUuid, bool bShowCross);
//鼠标移动
void s_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep, float yPos);
public:
//蝌蚪图重绘网格线
bool mKedou = false;
@ -807,6 +815,9 @@ public:
//黑白图
bool m_bBlack = false;
//十字线
bool m_bShowCross = false;
private:
};