logplus/logPlus/mainwindowcurve.h

210 lines
6.5 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:
//支持复制粘贴,暂时还未实现
void keyPressEvent(QKeyEvent * e);
public:
//图头
bool eventFilter(QObject* obj, QEvent* event);
void onPasteExcelData();
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 onItemClicked(QTableWidgetItem* item);
void mousePressEvent(QMouseEvent *event);
void s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType);
public slots:
void dragEnterEvent(QDragEnterEvent* event);
void dragMoveEvent(QDragMoveEvent* event);
void dropEvent(QDropEvent* event);
//图头
void copy();
void Paste();
//鼠标滚动,通知可视解释窗口
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;
QDockWidget *m_dock1;
QtProjectWidgets *m_leftWidgets = NULL; //左侧工程区
QLineEdit *spinbox1;
QLineEdit *spinbox2;
QLineEdit *spinbox3;
int m_iScale=200;
double m_iY1=0;
double m_iY2=0;
public:
//展示所有井
void DisplayWells(QJsonArray wellsArray);
//展示其中一口井
void DisplayWell_One(QJsonObject wellObjInfo);
//展示所有道
void DisplayTracks(QJsonArray tracksArray);
//展示其中一道
void DisplayTrack_One(QJsonObject trackObjInfo, int id);
//展示所有曲线
void DisplayLines(QJsonArray linesArray);
//展示其中一条曲线
void DisplayLine_One(QJsonObject lineObjInfo);
void Open(QString fileFull);//打开
public:
//样式
void loadStyle(const QString &qssFile);
//初始化工具栏
void initMainToolBar();
void initToolBar();
void initToolBar_2();
// 返回 strWellName << strSlfName
QStringList insertCol(int nW);
// 返回 strWellName << strSlfName
QStringList getSelectWell();
//停靠
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 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_AddLine_Property(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
double newLeftScale, double newRightScale, QString strScaleType, QColor lineColor, double width, Qt::PenStyle lineStyle);//新建曲线,带属性
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_ClearAllSetCurve();
//清除全部从曲线设置
void s_ClearSetCurve();
//
void s_showHeadTable(); //显示/隐藏图头
void s_currtemplite(); //加载图文件
void s_Save(); //保存图文件
void s_ExecuteDepthShift(); //校深
void s_ModuleOpen(); //处理算法
//void s_Open(QString fileFull);//打开
//图头右键菜单响应函数
void slotContextMenu(QPoint pos);
void slotMerge();//合并
void slotSplit();//拆分
};
#endif // MAINWINDOWCURVE_H