2025-10-29 17:23:30 +08:00
|
|
|
|
#ifndef MAINWINDOWCURVE_H
|
|
|
|
|
|
#define MAINWINDOWCURVE_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <QMainWindow>
|
|
|
|
|
|
#include "formwell.h"
|
|
|
|
|
|
#include "geometryutils.h"
|
2025-11-11 09:02:49 +08:00
|
|
|
|
#include "formmultiheads.h"
|
2025-12-16 16:33:56 +08:00
|
|
|
|
#include "qtprojectwidgets.h"
|
2026-01-26 18:06:51 +08:00
|
|
|
|
#include "CurveLine.h"
|
2025-10-29 17:23:30 +08:00
|
|
|
|
|
|
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
|
|
|
2026-01-19 18:08:03 +08:00
|
|
|
|
struct SelectTableItem
|
|
|
|
|
|
{
|
|
|
|
|
|
int m_iTableType=0; // 当前选中数据表格的类型,1:井次, 2:道, 3:曲线\表格\波列\参数卡
|
|
|
|
|
|
|
|
|
|
|
|
QString m_strUuid="";
|
|
|
|
|
|
QString m_strWellName="";
|
|
|
|
|
|
QString m_strSlfName="";
|
|
|
|
|
|
QString m_strTrackName="";
|
|
|
|
|
|
QString m_strLineName="";
|
2026-01-26 18:06:51 +08:00
|
|
|
|
QString m_strFormInfoType="";//类型:curve, wave
|
2026-01-19 18:08:03 +08:00
|
|
|
|
};
|
2026-03-20 09:35:26 +08:00
|
|
|
|
class MainWindowSplitter;
|
2026-01-19 18:08:03 +08:00
|
|
|
|
|
2025-10-29 17:23:30 +08:00
|
|
|
|
namespace Ui {
|
|
|
|
|
|
class MainWindowCurve;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class MainWindowCurve : public QMainWindow
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
explicit MainWindowCurve(QWidget *parent = nullptr);
|
|
|
|
|
|
~MainWindowCurve();
|
|
|
|
|
|
|
2026-03-20 09:35:26 +08:00
|
|
|
|
QToolBar * getPluginToolBar();
|
2025-10-29 17:23:30 +08:00
|
|
|
|
private:
|
|
|
|
|
|
Ui::MainWindowCurve *ui;
|
|
|
|
|
|
|
2025-11-03 18:14:56 +08:00
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
2026-02-09 18:14:22 +08:00
|
|
|
|
void resizeItem(QString strWellName, double tempWidth, double tempHight);
|
2025-11-03 18:14:56 +08:00
|
|
|
|
|
2025-10-29 17:23:30 +08:00
|
|
|
|
public slots:
|
|
|
|
|
|
void dragEnterEvent(QDragEnterEvent* event);
|
|
|
|
|
|
void dragMoveEvent(QDragMoveEvent* event);
|
|
|
|
|
|
void dropEvent(QDropEvent* event);
|
2026-02-04 15:30:08 +08:00
|
|
|
|
|
2025-11-05 14:03:27 +08:00
|
|
|
|
|
|
|
|
|
|
//鼠标滚动,通知可视解释窗口
|
|
|
|
|
|
void s_mouseWheel(QWheelEvent *event);
|
2025-11-11 09:02:49 +08:00
|
|
|
|
|
2025-10-29 17:23:30 +08:00
|
|
|
|
public:
|
2026-03-20 09:35:26 +08:00
|
|
|
|
MainWindowSplitter* m_pParentWin = NULL;
|
|
|
|
|
|
|
2025-10-30 11:55:37 +08:00
|
|
|
|
QString m_strUuid;
|
2025-10-29 17:23:30 +08:00
|
|
|
|
QStringList m_listWell;
|
2026-01-19 18:08:03 +08:00
|
|
|
|
//当前选中数据表格
|
|
|
|
|
|
SelectTableItem m_SelectTableItem;
|
2025-10-29 17:23:30 +08:00
|
|
|
|
|
2026-01-26 18:06:51 +08:00
|
|
|
|
//当前选中,标准曲线
|
|
|
|
|
|
SelectTableItem m_LeftCurve;
|
|
|
|
|
|
//当前选中,主校曲线
|
|
|
|
|
|
SelectTableItem m_RightCurve;
|
|
|
|
|
|
//从校曲线
|
|
|
|
|
|
QList<SelectTableItem> m_ShiftCurves;
|
|
|
|
|
|
//曲线拼接线列表
|
|
|
|
|
|
QVector<CurveLine*> m_mergeLineList;
|
2025-11-11 09:02:49 +08:00
|
|
|
|
|
2026-01-26 18:06:51 +08:00
|
|
|
|
FormMultiHeads *m_formMultiHeads;
|
2026-02-05 16:14:09 +08:00
|
|
|
|
FormMultiHeads *m_formMultiTails;
|
2025-11-11 09:02:49 +08:00
|
|
|
|
QDockWidget *m_dock1;
|
2026-02-05 16:14:09 +08:00
|
|
|
|
QDockWidget *m_dock2;
|
2025-12-16 16:33:56 +08:00
|
|
|
|
QtProjectWidgets *m_leftWidgets = NULL; //左侧工程区
|
|
|
|
|
|
|
2026-01-20 17:20:17 +08:00
|
|
|
|
QLineEdit *spinbox1;
|
|
|
|
|
|
QLineEdit *spinbox2;
|
|
|
|
|
|
QLineEdit *spinbox3;
|
|
|
|
|
|
|
2026-01-23 18:20:18 +08:00
|
|
|
|
int m_iScale=200;
|
2026-02-10 11:31:56 +08:00
|
|
|
|
double m_iY1=-1000;
|
2026-01-23 18:20:18 +08:00
|
|
|
|
double m_iY2=0;
|
|
|
|
|
|
|
2025-11-04 14:44:14 +08:00
|
|
|
|
public:
|
|
|
|
|
|
//展示所有井
|
|
|
|
|
|
void DisplayWells(QJsonArray wellsArray);
|
|
|
|
|
|
//展示其中一口井
|
|
|
|
|
|
void DisplayWell_One(QJsonObject wellObjInfo);
|
|
|
|
|
|
//展示所有道
|
|
|
|
|
|
void DisplayTracks(QJsonArray tracksArray);
|
2026-01-29 09:44:32 +08:00
|
|
|
|
|
2026-01-30 13:36:32 +08:00
|
|
|
|
void DisplayTrack_Top(int id, QJsonObject trackTop, QJsonObject trackInfo);
|
2026-01-29 09:44:32 +08:00
|
|
|
|
|
2025-11-04 14:44:14 +08:00
|
|
|
|
//展示其中一道
|
2026-01-30 13:36:32 +08:00
|
|
|
|
void DisplayTrack_One(QJsonObject trackObjInfo, QString strTrackName, int nW);
|
2025-11-04 14:44:14 +08:00
|
|
|
|
//展示所有曲线
|
2026-01-30 13:36:32 +08:00
|
|
|
|
void DisplayLines(QJsonArray linesArray, QString strTrackName, int nW);
|
2025-11-04 14:44:14 +08:00
|
|
|
|
//展示其中一条曲线
|
2026-01-30 13:36:32 +08:00
|
|
|
|
void DisplayLine_One(QJsonObject lineObjInfo, QString strTrackName);
|
|
|
|
|
|
|
|
|
|
|
|
void DisplayType_One(QJsonObject lineObjInfo, QString strTrackName, int nW);
|
2025-11-04 14:44:14 +08:00
|
|
|
|
|
|
|
|
|
|
void Open(QString fileFull);//打开
|
2025-10-29 17:23:30 +08:00
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
//样式
|
|
|
|
|
|
void loadStyle(const QString &qssFile);
|
|
|
|
|
|
//初始化工具栏
|
|
|
|
|
|
void initMainToolBar();
|
|
|
|
|
|
void initToolBar();
|
2026-01-19 18:08:03 +08:00
|
|
|
|
void initToolBar_2();
|
2026-01-30 09:47:13 +08:00
|
|
|
|
void initToolBar_3();
|
2026-02-09 11:26:15 +08:00
|
|
|
|
bool m_bMerge = false;//true代表拼接状态,false代表校深状态。为了切换时做数据清理
|
|
|
|
|
|
bool m_bHeadLoadJson = false;//true代表从json加载图头、结果表。false不加载
|
|
|
|
|
|
QJsonArray m_headsArray;
|
|
|
|
|
|
QJsonArray m_tailsArray;
|
2025-10-29 17:23:30 +08:00
|
|
|
|
|
2025-12-30 16:11:58 +08:00
|
|
|
|
// 返回 strWellName << strSlfName
|
|
|
|
|
|
QStringList insertCol(int nW);
|
|
|
|
|
|
|
2025-12-30 17:38:11 +08:00
|
|
|
|
// 返回 strWellName << strSlfName
|
2026-02-11 16:11:45 +08:00
|
|
|
|
QStringList getSelectWell();
|
|
|
|
|
|
// 返回 strWellName << strSlfName
|
|
|
|
|
|
QStringList getSelectWell_New();
|
2025-12-30 17:38:11 +08:00
|
|
|
|
|
2025-10-29 17:23:30 +08:00
|
|
|
|
//停靠
|
|
|
|
|
|
void dockLayout();
|
|
|
|
|
|
|
|
|
|
|
|
//新建井+道+曲线(首条)
|
2025-11-18 11:40:42 +08:00
|
|
|
|
void NewWellAndTrack(QString strWellName, QString strSlfName, QString strLineName, QString strType);
|
2025-10-29 17:23:30 +08:00
|
|
|
|
|
|
|
|
|
|
QJsonObject makeJson();
|
2026-01-19 18:08:03 +08:00
|
|
|
|
QStringList getLineList(QString strWellName, QString strTrackName);
|
2025-10-29 17:23:30 +08:00
|
|
|
|
|
|
|
|
|
|
signals:
|
2026-01-14 15:24:23 +08:00
|
|
|
|
void sig_NewTrackChangeWidth(QString strWellName, int nW=0);//新建道后,改变井宽
|
2025-10-31 17:56:50 +08:00
|
|
|
|
void sig_NewWell(QString strWellName);
|
2025-10-29 17:23:30 +08:00
|
|
|
|
|
2026-01-28 16:32:28 +08:00
|
|
|
|
public slots:
|
|
|
|
|
|
void slot_time();
|
|
|
|
|
|
//改变缩放比例
|
|
|
|
|
|
void s_changeScale(QString strUuid, int iNewScale);
|
|
|
|
|
|
//改变深度
|
|
|
|
|
|
void s_changeDepth(QString strUuid, QString strSlfName, QString strWellName, int iY1, int iY2);
|
|
|
|
|
|
//改变道宽
|
|
|
|
|
|
void s_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth);
|
|
|
|
|
|
|
2026-01-29 09:44:32 +08:00
|
|
|
|
//改变属性
|
|
|
|
|
|
void s_changeTrackProperty(QVariantList vlist);
|
|
|
|
|
|
|
2026-01-28 16:32:28 +08:00
|
|
|
|
void onItemClicked(QTableWidgetItem* item);
|
|
|
|
|
|
void mousePressEvent(QMouseEvent *event);
|
|
|
|
|
|
void s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType);
|
|
|
|
|
|
|
|
|
|
|
|
//右键--添加分段线
|
|
|
|
|
|
void s_AddShiftLine(QString strUuid, double left_Low, double right_Hight);
|
|
|
|
|
|
//右键--清除当前分段线
|
|
|
|
|
|
void s_DelSelectShiftLine(QString strUuid);
|
|
|
|
|
|
//右键--清除全部分段线
|
|
|
|
|
|
void s_DelAllShiftLine(QString strUuid);
|
|
|
|
|
|
|
2026-02-10 11:31:56 +08:00
|
|
|
|
//右键菜单响应函数
|
|
|
|
|
|
void slotContextMenu(QPoint pos);
|
|
|
|
|
|
void slotDeleteSelectTrack();
|
|
|
|
|
|
|
2025-10-29 17:23:30 +08:00
|
|
|
|
public slots:
|
2025-12-30 15:30:32 +08:00
|
|
|
|
void s_NewWell(QString strWellName, QString strSlfName);//新建井
|
2026-01-14 15:24:23 +08:00
|
|
|
|
void s_NewTrackChangeWidth(QString strWellName, int nW=0);//新建道后,改变井宽
|
2025-10-31 17:56:50 +08:00
|
|
|
|
void s_NewTrack_No_Line(QString strWellName, QString strTrackName);//新建空白道,没有曲线
|
2026-01-29 09:44:32 +08:00
|
|
|
|
|
2026-01-30 13:36:32 +08:00
|
|
|
|
void s_NewTrack_No_Line(QJsonObject topObj, QJsonObject infoObj);//新建空白道,没有曲线
|
2026-01-29 09:44:32 +08:00
|
|
|
|
|
2025-10-31 17:56:50 +08:00
|
|
|
|
void s_AddLine_Property(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
|
2026-02-09 18:14:22 +08:00
|
|
|
|
double newLeftScale, double newRightScale, QString strScaleType, QColor lineColor, double width, Qt::PenStyle lineStyle, QStringList listOtherProperty);//新建曲线,带属性
|
2025-10-31 17:56:50 +08:00
|
|
|
|
|
2026-01-04 16:54:55 +08:00
|
|
|
|
void s_NewTrack(); // 新建道
|
2025-12-30 17:38:11 +08:00
|
|
|
|
void s_NewDepth(); // 深度
|
|
|
|
|
|
void s_NewLogs(); // 曲线
|
|
|
|
|
|
void s_NewWave(); // 波列
|
|
|
|
|
|
void s_NewOGResult(); // 解释结论道
|
|
|
|
|
|
void s_NewGujing(); // 固井结论道
|
|
|
|
|
|
void s_NewSideCore(); // 井壁取心
|
|
|
|
|
|
void s_NewCore(); // 岩心分析
|
|
|
|
|
|
void s_NewMudlogging(); // 录井剖面
|
|
|
|
|
|
void s_NewTxt(); // 岩性描述
|
|
|
|
|
|
void s_NewCoreImage(); // 岩心照片
|
2026-01-13 14:10:52 +08:00
|
|
|
|
void s_NewSantuyibiao();// 斜井三图一表
|
2026-01-04 16:54:55 +08:00
|
|
|
|
void s_NewCrack(); // 裂缝
|
2025-12-30 17:38:11 +08:00
|
|
|
|
void s_NewShowDip(); // 蝌蚪图
|
2026-01-04 16:54:55 +08:00
|
|
|
|
void s_pinLvAc(); // 频率统计
|
2025-12-26 17:53:02 +08:00
|
|
|
|
void s_NewGanZhuangTu(); // 杆状图
|
2026-01-04 16:54:55 +08:00
|
|
|
|
void s_roseAc(); // 玫瑰图
|
2026-01-17 22:35:34 +08:00
|
|
|
|
void s_dcaAc(); // DCA分析
|
2026-01-04 16:54:55 +08:00
|
|
|
|
void s_Jykt(); // 井眼垮塌矢量图
|
|
|
|
|
|
void s_Denv(); // 井斜方位图
|
2026-01-06 16:03:55 +08:00
|
|
|
|
void s_DrawImage(); // 图像 成图
|
2026-01-05 15:15:37 +08:00
|
|
|
|
void s_NewGeoSection(); // 地质层位道
|
2026-01-07 17:39:27 +08:00
|
|
|
|
void s_NewJiegutext(); // 气测/FMT/射孔/文本
|
2026-01-06 16:03:55 +08:00
|
|
|
|
void s_NewLogface(); // 沉积相
|
2026-01-13 14:10:52 +08:00
|
|
|
|
void s_NewMCals(); // 多臂井径
|
2026-01-07 17:39:27 +08:00
|
|
|
|
void s_NewTubingstring(); // 套管组件
|
2026-01-19 18:08:03 +08:00
|
|
|
|
void s_NewTDT(); // TDT
|
|
|
|
|
|
|
|
|
|
|
|
//校深
|
|
|
|
|
|
void ApplyShiftDepth(QString strSlfName, QString strLineName, double DepthOffset);
|
|
|
|
|
|
void s_Shift(); // 整体深度平移校正
|
2026-01-20 17:20:17 +08:00
|
|
|
|
void MoveShift(QString strSlfName, QString strLineName, float sdep,float edep,float delta);
|
|
|
|
|
|
void s_MoveShift(); // 深度分段平移校正
|
|
|
|
|
|
void slotRun();
|
2026-01-26 18:06:51 +08:00
|
|
|
|
//设置/取消标准曲线
|
|
|
|
|
|
void s_Standard();
|
|
|
|
|
|
//设置/取消校正曲线
|
|
|
|
|
|
void s_Correction();
|
|
|
|
|
|
//自动对比
|
|
|
|
|
|
void s_autocor();
|
2026-01-28 16:32:28 +08:00
|
|
|
|
//执行校正
|
|
|
|
|
|
void s_runcor();
|
|
|
|
|
|
void s_Runcor_List(QString strUuid, QList<double> left_Low_List, QList<double> right_Hight_List);
|
2026-01-26 18:06:51 +08:00
|
|
|
|
//清除全部曲线设置
|
|
|
|
|
|
void s_ClearAllSetCurve();
|
|
|
|
|
|
//清除全部从曲线设置
|
|
|
|
|
|
void s_ClearSetCurve();
|
2025-12-25 15:10:14 +08:00
|
|
|
|
|
2026-01-30 09:47:13 +08:00
|
|
|
|
//执行拼接
|
|
|
|
|
|
void s_merge();
|
|
|
|
|
|
void s_Merge_List(QString strUuid, QList<double> left_Low_List, QList<double> right_Hight_List);
|
|
|
|
|
|
|
2026-02-03 14:40:58 +08:00
|
|
|
|
//拼接预览
|
|
|
|
|
|
void s_PreMegAc();
|
|
|
|
|
|
void s_PreMerge_List(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QList<double> left_Low_List, QList<double> right_Hight_List);
|
|
|
|
|
|
|
2026-02-02 16:37:58 +08:00
|
|
|
|
//编辑曲线,框选拉伸/压缩
|
|
|
|
|
|
void s_EShiftDepth(QString strSlfName, QString strLineName, int count, QList<double> left_Low_List, QList<double> right_Hight_List);
|
|
|
|
|
|
|
2025-10-29 17:23:30 +08:00
|
|
|
|
//
|
2026-01-19 18:08:03 +08:00
|
|
|
|
void s_showHeadTable(); //显示/隐藏图头
|
2026-01-23 14:53:34 +08:00
|
|
|
|
void s_currtemplite(); //加载图文件
|
2026-01-19 18:08:03 +08:00
|
|
|
|
void s_Save(); //保存图文件
|
|
|
|
|
|
void s_ExecuteDepthShift(); //校深
|
2026-01-30 09:47:13 +08:00
|
|
|
|
void s_ExecuteMerge(); //拼接
|
2026-01-19 18:08:03 +08:00
|
|
|
|
void s_ModuleOpen(); //处理算法
|
2025-11-04 14:44:14 +08:00
|
|
|
|
//void s_Open(QString fileFull);//打开
|
2025-11-03 18:14:56 +08:00
|
|
|
|
|
2025-10-29 17:23:30 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // MAINWINDOWCURVE_H
|