#pragma once #include "iGuiPlot.h" #include "mAlgDefines.h" #include "ZxObjBdyBase.h" class ZxDataWell; class ZxObjBase; class ZxObjBdyPoint; //ZXF202409 //边界设置 class M_GUI_PLOT_EXPORT iGuiPlotBdy : public iGuiPlot { Q_OBJECT public: explicit iGuiPlotBdy(bool bUseBtn = true, QWidget *parent = 0); ~iGuiPlotBdy(); // 初始化UI virtual void initUI(QString sTitle, QSize szDefault = QSize(265, 203)); // 反序列化后,把数据重新加入m_mapCurveData与m_mapCurveType virtual void resetAfterDeserialized(); // 刷新图形 virtual void runUpdate(); // 设置中心井 void setCentralWell(ZxDataWell* p); // 添加中心井 void appendWmPtCObj(VecBdyInfos vecBdyInfos, m_Bdy_Type eType); // 创建添加一个Obj ZxObjBdyPoint* appendOneWmObj(m_Wel_Type oType, QString &sName, QVector& vec, bool bCentral = false); ZxObjBdyPoint* _createOneWmObj(m_Wel_Type oType, QString &sName, QVector& vec); //添加边界线 void appendBdyLineObjs(VecBdyInfos vecBdyInfos); //矩形边界线 void appendBdyRectObjs(VecBdyInfos vecBdyInfos); //圆形边界线 void appendBdyCricleObjs(VecBdyInfos vecBdyInfos); //交叉边界 void appendBdyCrossObjs(VecBdyInfos vecBdyInfos); //平行边界 void appendBdyParalObjs(VecBdyInfos vecBdyInfos); //三条垂直边界 void appendBdyTriObjs(VecBdyInfos vecBdyInfos); protected: // 调整UI void adjustPlotUI(); // 刷新 virtual void updatePlots(); // 绘制Painter函数重载 virtual void paintEvent(QPaintEvent *); public: virtual void resizeEvent(QResizeEvent * event); public slots: //属性 void slotShowProperty(); //边界线 void slotObjBdyLineChanged(); signals: // 获取当前中心井的压力和流量 void sigGetCentralDataPF(QVector& vecP, QVector& vecF); //属性 void sigShowProperty(); //ObjSegLine改变 void sigObjBdyLineChanged(ZxObjBase*); protected: ZxDataWell* m_pCenterWell; ZxObjBdyPoint* m_pWmPtC; };