logplus/logPlus/qmycustomplot.h

608 lines
23 KiB
C
Raw Normal View History

2025-10-29 17:23:30 +08:00
#ifndef QMYCUSTOMPLOT_H
#define QMYCUSTOMPLOT_H
#include "qcustomplot.h"
#include "LogIO.h"
#include "QCPSizeHandleManager.h"
#include "qtColorSchemeComboBox.h"
#include "formtrack.h"
2025-10-29 17:23:30 +08:00
#pragma execution_character_set("utf-8")
2026-01-04 16:54:55 +08:00
const int iFracType=15;
//
#define SideWallCoreWidth 1.2
#define SideWallCoreHeight 0.5
struct Slf_TxtPOS {
int Order;
float Depth;
float CorrDepth;
};
struct Slf_JIEGUPOS {
int Order;
float Depth;
float Number;
char Dest[64];
};
typedef struct
{
int iCode; //代码
QString Fac; //相
QString Phase; //亚相
QString mFac; //微相
}FAC_DEF;
typedef struct
{
int no;
float sdep;
float edep;
char Fac[32];
char Phase[32];
char mFac[32];
char Dest[32];
}FAC_TABLE;
class TransparentGroupResult;
2025-10-29 17:23:30 +08:00
class QMyCustomPlot : public QCustomPlot
{
Q_OBJECT
public:
QMyCustomPlot(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="");
virtual ~QMyCustomPlot()
{
}
void initGeometry(QString strUuid, int nscale, int nW);
void changePropertyWaveUpdate();
// 绘图类型-变密度(成像)
2026-02-05 14:53:44 +08:00
void initWave(QString strSlfName, QString strWaveName);
// 绘图类型-波形
2026-02-05 14:53:44 +08:00
void initWave2(QString strSlfName, QString strWaveName);
void initColorTable();
void setSchemeIndex(int nidx, int colorNum);
double** getWavedata(int nrow, int ncol);
QCPColorMap * updateWave();
float getScaleV();
void groupBeginResult(float fEndDepth, float fStartDepth);
void groupEndResult();
// 设置解释结论属性
void setShowProperty(QVariant val, int ntag);
void setConclusionProportion(int nCopro);
void setShowPos(int nSPos);
//道宽改变后,避免井壁取心等组件变形,需要重新刷新
void resetPosition();
//固井结论
void resetPosition_Gujing();
//井壁取心
void resetPosition_SwallCore();
//录井剖面
void resetPosition_GeoLith();
//地质层位
void resetPosition_Layer();
2025-10-29 17:23:30 +08:00
protected:
//virtual void mouseMoveEvent(QMouseEvent *event);
2025-10-29 17:23:30 +08:00
public:
2026-03-08 23:22:36 +08:00
// 井UUID
2025-10-30 11:55:37 +08:00
QString m_strUuid;
2025-10-29 17:23:30 +08:00
QString m_strSlfName;
QString m_strWellName;
QString m_strTrackName;
QString m_strLineName;
FormTrack *m_formTrack = NULL;
2025-10-29 17:23:30 +08:00
//
float m_iX1, m_iX2;
float m_iY1, m_iY2;
2026-03-08 23:22:36 +08:00
qint8 m_nLeftCross = 0; // 左跨道个数
qint8 m_nRightCross = 0; // 右跨道个数
2025-10-29 17:23:30 +08:00
//填充曲线
QCPGraph *graph_Fill=nullptr;
//对称曲线
QCPGraph *graph_Symmetry=nullptr;
2025-10-29 17:23:30 +08:00
//其他曲线
QString m_newFillType;
QString m_newTargetLine;
QColor m_newColor;
QString m_newLithosImage;
QString m_newHeadFill;
float m_vMin;
2025-11-05 18:15:33 +08:00
float m_vMax;
QString m_strOtherScaleType;
QString m_strScaleType="线性";//刻度类型(线性,对数)
//绘制方式
bool m_bDrawLine = true; // 曲线
bool m_bDrawGan = false; // 杆状
bool m_bDrawPoint = false; // 点状
bool m_bDrawSymmetry = false; // 绘制对称曲线
QCPScatterStyle::ScatterShape m_pointStyle=QCPScatterStyle::ssCircle;//数据点,符号类型,圆,三角等
QColor m_frontColor;//岩性前景色
QColor m_backColor;//岩性背景色
QString m_newFillMode;
bool m_bFillNow = true;
2025-10-29 17:23:30 +08:00
QContextMenuEvent *m_event;
bool m_bDrawRect = true;
2026-01-06 16:03:55 +08:00
bool m_bX2Y = true;
2025-12-25 15:10:14 +08:00
//
bool m_bDrawCore_PHYSICS = false; //岩心分析
int dataIndex = -1;
bool singleDragMove = false;
float singleOldPosition = 0;
QCPColorMap *m_colorMap = NULL;
QCPColorScale * m_colorScale = NULL;
double** m_wavedata = NULL;
int m_nRow = 0;
int m_nCol = 0;
int m_nDrawType = 3; // 绘图类型
// 0.全周 1.正半周 2.负半周
int m_nMode = 1;
float m_fScaleV = 0.0f;
float m_fmin;
float m_fmax;
int m_nColorNum = 256;
int m_nSchemeIndex = 1;
bool m_bDrawDepth = false; // 绘制波深度
bool m_bDrawBase = false; // 绘制波基线
bool m_bOddEven = false; // 奇偶配色
float m_Base = 0.0f; // 波列基值
float m_MaxRange = 1023.0f;
int m_nWaveJg = 100;
int m_nWaveHei = 1;
2026-03-23 09:51:17 +08:00
// 深度 第三个轴
2026-03-24 09:43:05 +08:00
QCPAxis *m_yAxis2 = nullptr;
2026-03-23 09:51:17 +08:00
QCPAxis *m_yAxis3 = nullptr; // 保存指针
public:
bool m_bEditor = false; // 编辑状态
QCPItemStraightLine* m_pAddLine1 = NULL;
QCPItemStraightLine* m_pAddLine2 = NULL;
QString m_strGroupUid = "";
// 解释结论终止深度
float m_fResultEndDepth = 0.0f;
QVector<double> m_x;
QVector<double> m_y;
int m_iCurNum=0;
//分段刷新
int m_iSplitNum=2000; //2000000; //2000;
bool m_addRandomGraph=false;//当前是否绘制曲线 true:是。
bool m_bEditRect=false; //当前是否正在编辑曲线。
bool m_bFirstTimeConnect=true; //初次绑定编辑曲线信号槽。
2026-02-03 14:40:58 +08:00
bool m_bPriviewRightList=false; //当前是否正在预览曲线。
// 组
QMap<QString, QObject*> m_mapDragGroup;
QMap<QString, QObject*> m_mapDraggable_Rect; //文字结论
QMap<QString, QObject*> m_mapDraggable_Layer; //地质分层
QMap<QString, QObject*> m_mapDraggable_Result; //解释结论
QMap<QString, QObject*> m_mapDraggable_GeoLith; //录井剖面
QMap<QString, QObject*> m_mapDraggable_SwallCore; //井壁取心
QMap<QString, QObject*> m_mapDraggable_Gujing; //固井
2026-03-18 11:19:55 +08:00
QMap<QString, QObject*> m_mapDraggable_Image; // 岩心照片
QMap<QString, QObject*> m_mapDraggable_MFac; //微相
QMap<QString, QObject*> m_mapDraggable_Phase; //亚相
QMap<QString, QObject*> m_mapDraggable_Fac; //相
QMap<QString, QObject*> m_mapDraggable_Guan;
QMap<QString, QObject*> m_mapDraggable_Jiegutext;
QMap<QString, QObject*> m_mapDraggable_Line;
QMap<QString, QObject*> m_mapDraggable_SelectRect;
2026-02-03 14:40:58 +08:00
QMap<QString, QObject*> m_mapDraggable_RightList;
2026-03-25 09:13:55 +08:00
QMap<QString, QObject*> m_mapDraggable_CorePhysics; // 岩心分析
QObject* m_SelectShiftLine=nullptr;//当前选中的分段线
QObject* m_SelectRect=nullptr;//当前选中的曲线编辑框
//固井
QMap<QString,QString> zoneOrder_Gujing;
bool SaveToSLF_Gujing();
QString GetIntResult_Gujing(QString result);
void AddTableToWellRound(); //将表,添加到左侧树图
bool CopyToSLFFile(QString targetSLFFileName, bool deleteFromSrc, char*newCurveName);
bool LoadFromSLF_Gujing(QString strSlfName, QString strLineName);
2026-03-13 17:34:02 +08:00
// 岩心图片
QMap<QString,QString> zoneOrderImage;
2026-03-16 18:09:26 +08:00
bool SaveToSLFImage();
bool LoadFromIMAGE_SLF(QString strSlfName, QString strLineName);
2026-03-13 17:34:02 +08:00
2026-03-25 09:13:55 +08:00
// 岩心分析
QMap<QString,QString> zoneOrderCorePhysics;
bool saveToSLFCorePhysics();
bool loadFromSLFCorePhysics(QString strSlfName, QString strLineName);
2026-03-25 09:13:55 +08:00
//井壁取心
QStringList liths_SWallCore;
QStringList oils_SWallCore;
QStringList colors_SWallCore;
QStringList colorinds_SWallCore;
bool SaveToSLF_SwallCore();
bool LoadFromSLF_SwallCore(QString strSlfName, QString strLineName);
//录井剖面
QMap<QString,QString> OilOrder;
QMap<QString,QString> LithOrder;
QMap<QString,QString> ColorOrder;
QMap<QString,QString> ColorInds;
QStringList LithWidth;
bool m_bLithColor = true; // 岩性配色显示
bool m_bLithOne = true; // 单岩性显示
bool m_bShowOil = true; // 显示含油性
bool m_bCenterOil = false; // 含油性居中
bool m_bShowColor = false; // 显示颜色
bool m_bShowColorNum = false; // 绘制颜色号
double m_dOilZhan = 8; //含油占比
QString GetIntLith(QString Lith);
QString GetIntOil(QString Oil);
QString GetIntColor(QString Color);
bool SaveToSLF_GeoLith();
bool LoadFromSLF_GeoLith(QString strSlfName, QString strLineName);
//文字结论
bool SaveToSLF_Text();
bool LoadFromSLF_Text(QString strSlfName, QString strLineName);
//地质层位
bool SaveToSLF_Layer();
bool LoadFromSLF_Layer(QString strSlfName, QString strLineName);
//气测/FMT/射孔/文本
QStringList m_FieldNameList;
QStringList m_FieldHZNameList;
QStringList m_FieldUnitList;
QStringList m_FieldHZUnitList;
QList<int> ValueTypes;
QStringList CoreValues;
bool LoadFromSLF_Jiegutext(QString strSlfName, QString csCurve, QString strAliasName);
bool SaveToSLF_Jiegutext();
//沉积相
QList <FAC_DEF> m_FracDef;
QList <FAC_TABLE> m_ObjList_Fac;
QCPItemStraightLine *m_qcpItemLine=nullptr;
QCPItemStraightLine *m_qcpItemLine2=nullptr;
2026-03-18 10:17:11 +08:00
//沉积相
bool m_bDrawFac = true; // 绘制相
bool m_bDrawPhase = true; // 绘制亚相
bool m_bDrawMFacName = true; // 微相名称
void ReadFracDef();
void ReadData_Fac(QString strSlfName, QString csCurve, bool bAdd=true);
void DrawFac(int iType);
bool LoadFromSLF_Fac(QString strSlfName, QString csCurve, bool bAdd=true);
//保存
void SaveToSLF_Fac();
//套管組件
2026-03-20 18:04:15 +08:00
bool m_bDrawStruct_Tubing = true; //绘制结构
bool m_bDrawTubing_Tubing = true; //绘制管柱
bool m_bDrawTools_Tubing = true; //绘制工具
bool m_bDrawSPTool_Tubing = true; //标注工具
bool m_bDrawCCL_Tubing = false; //绘制接箍
float m_Oguan_Tubing = 63.5; //油管外径
float m_inD_Tubing = 121.36; //套管内径
float m_OutD_Tubing = 139.7; //套管外径
//
QMap<QString,QString> zoneOrder_Tubing;
QString cclimgpath_Tubing="";
QList<Slf_JIEGUPOS> m_pResultList_Tubing;
2026-03-19 18:02:39 +08:00
QString m_strAddTubing="";
2026-03-20 18:04:15 +08:00
QCPItemRect *mRect_Tubing=nullptr; //套管左侧图像
QCPItemRect *mRect2_Tubing=nullptr; //套管右侧图像
QCPItemPixmap *mPixmap_Tubing=nullptr; //管柱图像
double m_depth_Tubing = 0; //管柱深度
bool LoadFromSLF_Tubing(QString strSlfName, QString csCurve);
void drawOne_Tubing(Slf_JIEGUPOS result);
bool SaveToSLF_Tubing();
2026-03-20 18:04:15 +08:00
//绘制结构
void DrawStruct();
//绘制管柱
void DrawTubing();
//组件改变后,重绘管柱
bool LoadFromSLF_ReDrawTubing(QString strSlfName, QString csCurve);
//检查套管组件名称,是否需要更新套管图形
bool checkTubingName(QString m_Result);
2026-03-20 11:10:22 +08:00
public slots:
void slot_time();
2025-10-29 17:23:30 +08:00
public:
void init(QString strName, QVector<double> x, QVector<double> y);
//岩心照片
2025-10-30 11:55:37 +08:00
void addImageToPlot(double left_Low, double right_Hight, const QString imagePath);
2026-03-18 11:19:55 +08:00
void addImageToPlot(double left_Low, double right_Hight, const QString imagePath, double left, double width);
2026-03-19 09:44:09 +08:00
// left_Low底, right_Hight高 imagePath图片 left左边距 width宽 mBorderColor边框颜色、 mBorderStyle边框样式 mBorderWidth边框宽
void addImageToPlot(double left_Low, double right_Hight, const QString imagePath, double left, double width, QColor mBorderColor, Qt::PenStyle mBorderStyle, int mBorderWidth);
//曲线
void addRandomGraph(QVector<double> x, QVector<double> y, QString strSlfName, QString strLineName, QString strAliasName, QString strUnit,
double newLeftScale, double newRightScale, QString strScaleType, QColor &newlineColor, double width, Qt::PenStyle lineStyle);
2025-10-29 17:23:30 +08:00
//文字结论
2026-03-20 18:04:15 +08:00
void addTextToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
//地质分层
2026-03-20 18:04:15 +08:00
void addLayerToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
//解释结论
TransparentGroupResult* addResultGroup(double left_Low, double right_Hight, QString &strUuid, QString strText = "");
2025-12-11 15:11:20 +08:00
void addResultToPlot(double left_Low, double right_Hight, QString myResult, QString &strUuid, QString strText="");
//录井剖面
void addGeoLithToPlot(double left_Low, double right_Hight, const QString myLith, const QString myOil, const QString myColor, bool bRefresh=true);
//井壁取心
2026-03-20 18:04:15 +08:00
void addSwallCoreToPlot(double Depth, QString LithologyImage, QString OilGasImage, QString ColorImage, double Sideleft, double width, int iColor, bool bRefresh=true);
2025-12-22 18:22:45 +08:00
//固井结论
2026-03-20 18:04:15 +08:00
void addGujingToPlot(double left_Low, double right_Hight, const QString strResult, bool bRefresh=true);
2025-12-23 17:15:39 +08:00
//气测/FMT/射孔/文本
2026-03-20 18:04:15 +08:00
void addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, const QStringList strList_coredat, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
//沉积相
2026-03-20 18:04:15 +08:00
void addMFacToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
void addPhaseToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
void addFacToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
2026-01-06 16:03:55 +08:00
//套管组件
2026-03-20 18:04:15 +08:00
void addGuanToPlot(double left_Low, double right_Hight, const QString imagePath, float in, bool bRefresh=true);
//校深线段
void addLineToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80));
//框选并编辑曲线
void addSelectRectToPlot(double left_Low, double right_Hight, int left_Low_Number, int right_Hight_Number);
2026-02-03 14:40:58 +08:00
//预览
void addRightListToPlot( QList<double> new_DepthList, QList<double> new_ValueList);
2025-10-29 17:23:30 +08:00
public slots:
void slotSelectionRectAccepted(const QRect &rect, QMouseEvent *event);
2025-10-29 17:23:30 +08:00
void s_LineClicked(int index);
void onResetZoom();
void removeSelectedGraph();
void removeSelectedGraphByTitle();
void s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType);
2025-10-29 17:23:30 +08:00
//属性
//左刻度
void s_ChangeLeftScale(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double newLeftScale);
2025-10-29 17:23:30 +08:00
//右刻度
void s_ChangeRightScale(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double newRightScale);
//刻度类型
void s_ChangeScaleType(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strScaleType);
2025-10-29 17:23:30 +08:00
//线颜色
void s_ChangeLineColor(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor);
2025-10-29 17:23:30 +08:00
//线宽
void s_ChangeLineWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double width);
2025-10-29 17:23:30 +08:00
//线型
void s_ChangeLineStyle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, Qt::PenStyle lineStyle);
//绘制方式
void ChangeDrawMethod(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
//曲线
void s_ChangeDrawLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawLine);
//杆状
void s_ChangeDrawGan(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawGan);
//点状
void s_ChangeDrawPoint(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawPoint);
//绘制对称曲线
void s_ChangeDrawSymmetry(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawSymmetry);
//改变曲线名
void s_changeLineName(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName);
//数据点 符号类型
void s_ChangePointStyle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QCPScatterStyle::ScatterShape pointStyle);
2025-10-29 17:23:30 +08:00
//岩性填充-不填充
void s_ClearFillMode(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
2025-10-29 17:23:30 +08:00
//岩性填充-填充
void s_ChangeFillMode(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
2025-10-29 17:23:30 +08:00
QString newFillType, QString newTargetLine, QColor newColor, QString newLithosImage, QString newHeadFill,
float vMin, float vMax, QString strOtherScaleType, QColor frontColor, QColor backColor, QString newFillMode, bool bFillNow);
2025-10-29 17:23:30 +08:00
//右键--添加分段线
void onAddShiftLine();
//校深线段
void s_AddShifLineToPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double left_Low, double right_Hight);
//右键--清除当前分段线
void onDelSelectShiftLine();
//清除当前分段线
void s_DelSelectShiftLineFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
//右键--清除全部分段线
void onDelAllShiftLine();
//清除全部分段线
void s_DelAllShiftLineFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
//右键--编辑曲线
void onEditLine();
//通用
void ClearSelectItems(); //取消选中
2026-02-26 18:49:59 +08:00
//右键--编辑固井
void onEditGujing();
void addItems_Gujing(); //从剪切板文本数据粘贴
void DeleteItems_Gujing(); //全部清空
void RefreshItems_Gujing(); //刷新数据
void MegResult_Gujing(); //合并结论
2026-03-13 17:34:02 +08:00
//右键--编辑岩心照片
void onEditImage();
void addItemsImage(); //从剪切板文本数据粘贴
void deleteItemsImage(); //全部清空
void refreshItemsImage(); //刷新数据
2026-03-25 09:13:55 +08:00
//右键--编辑岩心分析
2026-03-25 11:04:31 +08:00
void addCorePhysics(); // 增加
void addCorePhysicsWithParam(int Order = 0, double Depth = 0.0, double CorrDepth = 0.0, double CoreValue = 0.0);
2026-03-25 09:13:55 +08:00
void pasteCorePhysics(); //从剪切板文本数据粘贴
void deleteCorePhysics(); //全部清空
void refreshCorePhysics(); //刷新数据
2026-03-13 17:34:02 +08:00
//右键--编辑井壁取心
void addItem_SWallCore(); //增加井壁取心
void moveItems_SWallCore(); //平移水平位置
void addItems_SWallCore(); //从剪切板文本数据粘贴
void DeleteItems_SWallCore(); //全部清空
void RefreshItems_SWallCore(); //刷新数据
void AddItem_SWallCore(QStringList lists);
//右键--编辑录井剖面
void onEditGeoLith();
void addItems_GeoLith(); //从剪切板文本数据粘贴
void DeleteItems_GeoLith(); //全部清空
void RefreshItems_GeoLith(); //刷新数据
void AddItem_GeoLith(QStringList lists);
//右键--编辑文字结论
void onEditText();
void addItems_Text(); //从剪切板文本数据粘贴
void DeleteItems_Text(); //全部清空
void RefreshItems_Text(); //刷新数据
void AddItem_Text(QStringList lists);
//右键--编辑地质分层
void onEditLayer();
void addItems_Layer(); //从剪切板文本数据粘贴
void DeleteItems_Layer(); //全部清空
void RefreshItems_Layer(); //刷新数据
void AddItem_Layer(QStringList lists);
//右键--气测-管柱-文本-FMT-射孔
void addItems_Jiegutext(); //从剪切板文本数据粘贴
void DeleteItems_Jiegutext(); //全部清空
void RefreshItems_Jiegutext(); //刷新数据
//右键--沉积相
void addItem_Fac(); //添加沉积相
void RefreshItems_Fac(bool bAdd=true); //刷新数据
//右键--套管组件
void addItem_Tubing(); //添加套管组件
void addItems_Tubing(); //从剪切板文本数据粘贴
void DeleteItems_Tubing();//全部清空
void RefreshItems_Tubing(); //刷新数据
//右键--解释结论
void onOpenEditResult();
void onCloseEditResult();
void DeleteItemGroup();
void updateGroupZone(); //更新层号
bool SaveToSLF_Result();
TransparentGroupResult* getCurGroupResult(double x_val);
// 筛选出选中的Group 并且排序
QMap<double, TransparentGroupResult*> getSelectGroupResult();
void segmentationInnerLayer(); // 分割为层内层
void segmentationIndependentLayer(); // 分割为独立层
void splitIndependentLayer(); // 拆分复合层成独立层
void megResultLayer();// 合并
bool getIsEditor();
//
void addItems_Core();
2026-02-26 18:49:59 +08:00
//执行校正
void s_RuncorFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
2026-01-30 09:47:13 +08:00
//执行拼接
void s_MergeFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
2026-02-03 14:40:58 +08:00
//执行预览
void s_PreMergeFromPlot(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
void s_PreMerge_FromRightList(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QList<double> new_DepthList, QList<double> new_ValueList);
//关闭预览框
void s_PreMerge_Close(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
//Plot重新加载数据
void s_ReloadPlot(QString strUuid, QString strSlfName, QString strLineName);
void s_changeDrawProperty(QVariantList vlist);
2026-03-20 09:10:07 +08:00
// 深度
void s_changeDepthProperty(QVariantList vlist);
2026-03-27 18:06:40 +08:00
// 岩心分析
2026-03-30 14:18:09 +08:00
void s_changeCorePhysicsProperty(QVariantMap vlist);
2026-03-27 18:06:40 +08:00
2025-10-29 17:23:30 +08:00
void onAddRect();
//蝌蚪图重绘网格线
void drawCustomElements();
//改变固井曲线名
void s_changeGujingLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName);
//改变曲线名 //气测/FMT/射孔/文本
void s_changeJiegutextLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName);
void s_changeJiegutextTitle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName);
//改变录井剖面属性
void s_changeGeoLithLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double dOilZhan);
//是否显示
void s_changeGeoLithShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow);
2026-03-18 10:17:11 +08:00
//改变沉积相属性,是否显示
void s_changeFacShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow);
2026-03-20 18:04:15 +08:00
//改变套管组件属性,是否显示
void s_changeGuanShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow);
//改变套管组件属性,直径
void s_changeGuanD(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, double newD);
2025-10-29 17:23:30 +08:00
public:
//蝌蚪图重绘网格线
bool mKedou = false;
2025-10-29 17:23:30 +08:00
//
bool mMousePress = false;
double m_dPressX = 0;
QPoint mLastPos;
QCPSizeHandleManager *mSizeHandleManager;
virtual void mouseDoubleClickEvent(QMouseEvent *event);
2025-10-29 17:23:30 +08:00
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseMoveEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
2025-12-25 15:10:14 +08:00
//单点移动功能
void executeSingle(QMouseEvent *event);
2025-10-29 17:23:30 +08:00
virtual void contextMenuEvent(QContextMenuEvent *event);
private:
};
#endif // QMYCUSTOMPLOT_H