|
|
|
|
#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;
|
|
|
|
|
};
|