logplus/logPlus/mainwindowcurve.h

246 lines
8.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef MAINWINDOWCURVE_H
#define MAINWINDOWCURVE_H
#include <QMainWindow>
#include "formwell.h"
#include "geometryutils.h"
#include "formmultiheads.h"
#include "qtprojectwidgets.h"
#include "CurveLine.h"
#pragma execution_character_set("utf-8")
struct SelectTableItem
{
int m_iTableType=0; // 当前选中数据表格的类型1:井次, 2:道, 3:曲线\表格\波列\参数卡
QString m_strUuid="";
QString m_strWellName="";
QString m_strSlfName="";
QString m_strTrackName="";
QString m_strLineName="";
QString m_strFormInfoType="";//类型curve, wave
};
namespace Ui {
class MainWindowCurve;
}
class MainWindowCurve : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindowCurve(QWidget *parent = nullptr);
~MainWindowCurve();
private:
Ui::MainWindowCurve *ui;
protected:
public:
void resizeItem(QString strWellName, double tempWidth, double tempHight);
public slots:
void dragEnterEvent(QDragEnterEvent* event);
void dragMoveEvent(QDragMoveEvent* event);
void dropEvent(QDropEvent* event);
//鼠标滚动,通知可视解释窗口
void s_mouseWheel(QWheelEvent *event);
public:
QString m_strUuid;
QStringList m_listWell;
//当前选中数据表格
SelectTableItem m_SelectTableItem;
//当前选中,标准曲线
SelectTableItem m_LeftCurve;
//当前选中,主校曲线
SelectTableItem m_RightCurve;
//从校曲线
QList<SelectTableItem> m_ShiftCurves;
//曲线拼接线列表
QVector<CurveLine*> m_mergeLineList;
FormMultiHeads *m_formMultiHeads;
FormMultiHeads *m_formMultiTails;
QDockWidget *m_dock1;
QDockWidget *m_dock2;
QtProjectWidgets *m_leftWidgets = NULL; //左侧工程区
QLineEdit *spinbox1;
QLineEdit *spinbox2;
QLineEdit *spinbox3;
int m_iScale=200;
double m_iY1=-1000;
double m_iY2=0;
public:
//展示所有井
void DisplayWells(QJsonArray wellsArray);
//展示其中一口井
void DisplayWell_One(QJsonObject wellObjInfo);
//展示所有道
void DisplayTracks(QJsonArray tracksArray);
void DisplayTrack_Top(int id, QJsonObject trackTop, QJsonObject trackInfo);
//展示其中一道
void DisplayTrack_One(QJsonObject trackObjInfo, QString strTrackName, int nW);
//展示所有曲线
void DisplayLines(QJsonArray linesArray, QString strTrackName, int nW);
//展示其中一条曲线
void DisplayLine_One(QJsonObject lineObjInfo, QString strTrackName);
void DisplayType_One(QJsonObject lineObjInfo, QString strTrackName, int nW);
void Open(QString fileFull);//打开
public:
//样式
void loadStyle(const QString &qssFile);
//初始化工具栏
void initMainToolBar();
void initToolBar();
void initToolBar_2();
void initToolBar_3();
bool m_bMerge = false;//true代表拼接状态false代表校深状态。为了切换时做数据清理
bool m_bHeadLoadJson = false;//true代表从json加载图头、结果表。false不加载
QJsonArray m_headsArray;
QJsonArray m_tailsArray;
// 返回 strWellName << strSlfName
QStringList insertCol(int nW);
// 返回 strWellName << strSlfName
QStringList getSelectWell();
// 返回 strWellName << strSlfName
QStringList getSelectWell_New();
//停靠
void dockLayout();
//新建井+道+曲线(首条)
void NewWellAndTrack(QString strWellName, QString strSlfName, QString strLineName, QString strType);
QJsonObject makeJson();
QStringList getLineList(QString strWellName, QString strTrackName);
signals:
void sig_NewTrackChangeWidth(QString strWellName, int nW=0);//新建道后,改变井宽
void sig_NewWell(QString strWellName);
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);
//改变属性
void s_changeTrackProperty(QVariantList vlist);
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);
//右键菜单响应函数
void slotContextMenu(QPoint pos);
void slotDeleteSelectTrack();
public slots:
void s_NewWell(QString strWellName, QString strSlfName);//新建井
void s_NewTrackChangeWidth(QString strWellName, int nW=0);//新建道后,改变井宽
void s_NewTrack_No_Line(QString strWellName, QString strTrackName);//新建空白道,没有曲线
void s_NewTrack_No_Line(QJsonObject topObj, QJsonObject infoObj);//新建空白道,没有曲线
void s_AddLine_Property(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
double newLeftScale, double newRightScale, QString strScaleType, QColor lineColor, double width, Qt::PenStyle lineStyle, QStringList listOtherProperty);//新建曲线,带属性
void s_NewTrack(); // 新建道
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(); // 岩心照片
void s_NewSantuyibiao();// 斜井三图一表
void s_NewCrack(); // 裂缝
void s_NewShowDip(); // 蝌蚪图
void s_pinLvAc(); // 频率统计
void s_NewGanZhuangTu(); // 杆状图
void s_roseAc(); // 玫瑰图
void s_dcaAc(); // DCA分析
void s_Jykt(); // 井眼垮塌矢量图
void s_Denv(); // 井斜方位图
void s_DrawImage(); // 图像 成图
void s_NewGeoSection(); // 地质层位道
void s_NewJiegutext(); // 气测/FMT/射孔/文本
void s_NewLogface(); // 沉积相
void s_NewMCals(); // 多臂井径
void s_NewTubingstring(); // 套管组件
void s_NewTDT(); // TDT
//校深
void ApplyShiftDepth(QString strSlfName, QString strLineName, double DepthOffset);
void s_Shift(); // 整体深度平移校正
void MoveShift(QString strSlfName, QString strLineName, float sdep,float edep,float delta);
void s_MoveShift(); // 深度分段平移校正
void slotRun();
//设置/取消标准曲线
void s_Standard();
//设置/取消校正曲线
void s_Correction();
//自动对比
void s_autocor();
//执行校正
void s_runcor();
void s_Runcor_List(QString strUuid, QList<double> left_Low_List, QList<double> right_Hight_List);
//清除全部曲线设置
void s_ClearAllSetCurve();
//清除全部从曲线设置
void s_ClearSetCurve();
//执行拼接
void s_merge();
void s_Merge_List(QString strUuid, QList<double> left_Low_List, QList<double> right_Hight_List);
//拼接预览
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);
//编辑曲线,框选拉伸/压缩
void s_EShiftDepth(QString strSlfName, QString strLineName, int count, QList<double> left_Low_List, QList<double> right_Hight_List);
//
void s_showHeadTable(); //显示/隐藏图头
void s_currtemplite(); //加载图文件
void s_Save(); //保存图文件
void s_ExecuteDepthShift(); //校深
void s_ExecuteMerge(); //拼接
void s_ModuleOpen(); //处理算法
//void s_Open(QString fileFull);//打开
};
#endif // MAINWINDOWCURVE_H