You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/mGui/mGuiPlot/iGuiPlotSeg.h

108 lines
3.0 KiB
C

#pragma once
#include "iGuiPlot.h"
#include "mAlgDefines.h"
class ZxDataWell;
class ZxObjBase;
class ZxObjWmPoint;
class ZxObjSegLine;
//ZXF20240703
//水平井段设置
class M_GUI_PLOT_EXPORT iGuiPlotSeg : public iGuiPlot
{
Q_OBJECT
public:
explicit iGuiPlotSeg(bool bUseBtn = true, QWidget *parent = 0);
~iGuiPlotSeg();
// 初始化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);
// 返回井点信息
bool getWmInfos(QVector<ZxObjWmPoint*>& vecWms);
// 添加中心水平井
void appendWmPtCObj(double fTop, double fBottom,
QStringList listSegTags,
QMap<QString,QMap<QString, double> > mapInfos);
// 创建添加一个Obj
ZxObjWmPoint* appendOneWmObj(m_Wel_Type oType,
QString &sName,
QVector<QPointF>& vec,
bool bCentral = false);
ZxObjWmPoint* _createOneWmObj(m_Wel_Type oType,
QString &sName,
QVector<QPointF>& vec);
//添加产液线
//添加产液线对象
ZxObjSegLine* appendSegObj(QString& sName, QMap<QString, double>& map);
//添加新的产液线对象
ZxObjSegLine* _createOneSegObj(QString &sName,QMap<QString, double>& map);
//等间隔布局(弹框,对话框设置,根据起始深度和终止深度和设置间隔进行布局)
void calEquLayout();
//整体一起设置
void calWholeSet();
//鼠标交互整体调整ZXF202409
void calTotalSet();
protected:
// 调整UI
void adjustPlotUI();
// 刷新
virtual void updatePlots();
// 绘制Painter函数重载
virtual void paintEvent(QPaintEvent *);
//改变其他产液线(动的产液线)ZXF202409整体一起联动鼠标交互后操作
void setOtherSegLine(ZxObjSegLine* pSrcSegLine);
public slots:
// Obj选择状态改变
void slotWmObjSelChanged(bool);
// Obj数据发生了改变
void slotWmObjPtsChanged();
//ObjSegLine数据改变
void slotObjSegLineChanged();
//对产液线参数进行修改
void slotSegTableChanged(QString sTagName, QString sParam, double fVal);
//属性
void slotShowProperty();
signals:
// Obj选择状态改变
void sigWmObjSelChanged(ZxObjBase*, bool);
// Obj数据发生了改变
void sigWmObjPtsChanged(ZxObjBase*);
// 获取当前中心井的压力和流量
void sigGetCentralDataPF(QVector<QPointF>& vecP,
QVector<QPointF>& vecF);
//ObjSegLine改变
void sigObjSegLineChanged(ZxObjBase*);
//属性
void sigShowProperty();
protected:
ZxDataWell* m_pCenterWell;
ZxObjWmPoint* m_pWmPtC;
//是否整体调整(鼠标交互的时候)
bool m_bTotalSet;
};