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.
nmWTAI-Platform/Include/mGui/mGuiPlot/iGuiPlotMap.h

105 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 "Defines.h"
#include "ZxDataObject.h"
#include "iGuiPlot.h"
#include "mAlgDefines.h"
class ZxDataWell;
class ZxObjBase;
class ZxObjWmPoint;
// WellMap
class M_GUI_PLOT_EXPORT iGuiPlotMap : public iGuiPlot
{
Q_OBJECT
public:
explicit iGuiPlotMap(bool bUseBtn = true, QWidget *parent = 0);
~iGuiPlotMap();
// 初始化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 appendWmPtObjs(ZxDataObjectList& vecWells);
// 创建添加一个Obj从井数据体中自动创建
ZxObjWmPoint* appendOneWmObj(ZxDataWell* pDataWell);
// 鼠标交互式插入窗口(传入的是鼠标坐标/屏幕坐标)
ZxObjWmPoint* appendOneWmObjEx(m_Wel_Type oType,
QString &sName, \
QVector<QPointF>& vec);
ZxObjWmPoint* _createOneWmObj(m_Wel_Type oType,
QString &sName);
// 返回当前选中的井点对应的数据对象
void getSelectedWellDatas(QVector<ZxDataWell*>& vecWells, bool bOnlyOne);
protected:
// 调整UI
void adjustPlotUI();
// 刷新
virtual void updatePlots();
virtual void loadDefaultCurvePF(QVector<QPointF>& vecP, \
QVector<QPointF>& vecF, \
ZxDataWell* pWell);
// 绘制Painter函数重载
virtual void paintEvent(QPaintEvent *);
virtual void resizeEvent(QResizeEvent * event);
public slots:
// Obj选择状态改变
void slotWmObjSelChanged(bool);
// Obj数据发生了改变
void slotWmObjPtsChanged();
// 这是从 tPlotCurveView传递过来的拖拽处理
void slotCheckDragAccepted(QDragEnterEvent* event, bool&b);
void slotDealwithDrop(QDropEvent* event);
// 确保方格
virtual void slotChangeSizeWithChangedXY();
// 当某个数据对象右键选中时,触发调整右键菜单
virtual void slotAdjustContextMenuBy(ZxObjBase* pObj, QMenu* pMenu);
void slotSetAsCurWell();
void slotRunAnalPF();
void slotRunAnalNm();
signals:
// Obj选择状态改变
void sigWmObjSelChanged(ZxObjBase*, bool);
// Obj数据发生了改变
void sigWmObjPtsChanged(ZxObjBase*);
// 获取当前中心井的压力和流量
void sigGetCentralDataPF(QVector<QPointF>& vecP,
QVector<QPointF>& vecF);
// 以当前选择的井点进行相关的右键菜单触发
void sigSetAsCurWell(ZxDataWell* pDataWell);
void sigRunAnalPF(ZxDataWell* pDataWell);
void sigRunAnalNm(QVector<ZxDataWell*>& vecWells);
protected:
ZxDataWell* m_pCenterWell;
ZxObjWmPoint* m_pWmPtC;
};