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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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(float fTop, float 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;
};