|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "qglobal.h"
|
|
|
|
|
|
#if (QT_VERSION >= 0x050000)
|
|
|
|
|
|
#include <QtWebEngineWidgets/QtWebEngineWidgets>
|
|
|
|
|
|
#define QWebView QWebEngineView
|
|
|
|
|
|
#else
|
|
|
|
|
|
#include <QtWebKit/QWebView>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#include "mAlgDefines.h"
|
|
|
|
|
|
#include "iWxPseuBase.h"
|
|
|
|
|
|
#include "mToolPseu_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
class ZxTableView;
|
|
|
|
|
|
class ZxTableModel;
|
|
|
|
|
|
|
|
|
|
|
|
class iGridRowUtils;
|
|
|
|
|
|
|
|
|
|
|
|
class ZxPtyDock;
|
|
|
|
|
|
class IxPtySource;
|
|
|
|
|
|
|
|
|
|
|
|
class ZxRenderItem;
|
|
|
|
|
|
class ZxObjCurve;
|
|
|
|
|
|
class iCurveDesc;
|
|
|
|
|
|
class iGuiPlot;
|
|
|
|
|
|
|
|
|
|
|
|
class iWxPseuHeader;
|
|
|
|
|
|
|
|
|
|
|
|
class iAlgPseuMethodBase;
|
|
|
|
|
|
|
|
|
|
|
|
class M_TOOL_PSEU_EXPORT iWxPseuSub : public iWxPseuBase
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
explicit iWxPseuSub(QWidget* parent /*= 0*/);
|
|
|
|
|
|
~iWxPseuSub();
|
|
|
|
|
|
|
|
|
|
|
|
// 设置关联
|
|
|
|
|
|
void setPseuHeader(iWxPseuHeader* pSubHeader);
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化
|
|
|
|
|
|
virtual void initUI();
|
|
|
|
|
|
|
|
|
|
|
|
// 导出导入
|
|
|
|
|
|
virtual bool importOrExport(bool bImport);
|
|
|
|
|
|
|
|
|
|
|
|
// 当主窗体相态发生改变时的处理(主+次,其中次为组合,需要解析)
|
|
|
|
|
|
virtual void freshOnPhaseChanged(QMap<QString, QVariant>& map);
|
|
|
|
|
|
|
|
|
|
|
|
// 当Header发生改变时
|
|
|
|
|
|
virtual void freshOnHeaderChanged();
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化算法
|
|
|
|
|
|
virtual void initAlg();
|
|
|
|
|
|
|
|
|
|
|
|
// 算法计算入口
|
|
|
|
|
|
virtual void calAndFreshPseu(bool bCreateIfFirst = true);
|
|
|
|
|
|
|
|
|
|
|
|
// 是否已经正确进行了拟压力计算
|
|
|
|
|
|
virtual bool hasProperPseuRst();
|
|
|
|
|
|
|
|
|
|
|
|
/// @brief 获取 拟压力页面中,拟压力结果表
|
|
|
|
|
|
/// @param vvec,返回数据,长度为4,分别为压力P/拟压力Ps/偏差因子Zg/黏度Miug
|
|
|
|
|
|
/// 压力,单位 Mpa
|
|
|
|
|
|
/// 拟压力,单位 Pa/sec
|
|
|
|
|
|
/// 偏差因子,单位 Pa/sec
|
|
|
|
|
|
/// 黏度,单位 Pa/sec
|
|
|
|
|
|
virtual bool getPseuRstOf(VVecDouble& vvec);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// 布局
|
|
|
|
|
|
virtual QWidget *initUI_Chart();
|
|
|
|
|
|
virtual void initUI_DockPty();
|
|
|
|
|
|
|
|
|
|
|
|
virtual void initUI_Others();
|
|
|
|
|
|
|
|
|
|
|
|
// 默认值
|
|
|
|
|
|
virtual void initDefault();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
void bindDockPty(IxPtySource* pPtyObj);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
virtual void clearChart(iGuiPlot* pWxPlot, bool bClearAll = true); //false时,只清空曲线不清空点
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
virtual void paintEvent(QPaintEvent*);
|
|
|
|
|
|
virtual void resizeEvent(QResizeEvent*);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
|
|
|
|
virtual void slotHeaderOptionDataChanged();
|
|
|
|
|
|
|
|
|
|
|
|
// 响应左侧GridPty数据的改变,注意:该函数为父类继承过来的函数,不能进行名称更改
|
|
|
|
|
|
virtual void slotParaCtrlValueChanged(QString sPara, QVariant o);
|
|
|
|
|
|
|
|
|
|
|
|
// 表格
|
|
|
|
|
|
//void slotTableDataChanged(const QModelIndex&, const QModelIndex&);
|
|
|
|
|
|
//void slotTableRowChanged(QModelIndexList listOlds, QModelIndexList listNews, QModelIndex index);
|
|
|
|
|
|
|
|
|
|
|
|
// 窗体构建及图窗口构建过程中涉及的信号
|
|
|
|
|
|
virtual void slotToolbarBuilt(QToolBar* pToolBar);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void slotGraphItemPoliciesInstalled(ZxRenderItem*);
|
|
|
|
|
|
|
|
|
|
|
|
// 图上选中了某一条曲线
|
|
|
|
|
|
// virtual void slotCurveSelected(ZxObjCurve* pCurve, bool bSelected);
|
|
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
|
|
// 从主窗体获取当前的相态(主+次,其中次为组合,需要解析)
|
|
|
|
|
|
void sigGetCurPhaseOptions(QMap<QString, QVariant>&);
|
|
|
|
|
|
|
|
|
|
|
|
// 获取某个参数的PVT数据(比如Zg)
|
|
|
|
|
|
// vvec为两列
|
|
|
|
|
|
// vvec[0]: p1 Zg1
|
|
|
|
|
|
// vvec[1]: p2 Zg2
|
|
|
|
|
|
// vvec[2]: p3 Zg3
|
|
|
|
|
|
void sigGetPvtDataOf(QString sPara, VVecVariant& vvec);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// 获取结果
|
|
|
|
|
|
//virtual bool getAllResults(QMap<QString, double>& mapResults);
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool savePseu();
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool cachePseuRst(QByteArray& baDataMid, QByteArray& baDataRst);
|
|
|
|
|
|
virtual bool updateByPseuRst(QByteArray& baDataMid, QByteArray& baDataRst);
|
|
|
|
|
|
|
|
|
|
|
|
// 文件标识
|
|
|
|
|
|
virtual QString getFilePseuTag();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// FluidType,这是主类型
|
|
|
|
|
|
QString m_sPseu;
|
|
|
|
|
|
|
|
|
|
|
|
// SubHeader
|
|
|
|
|
|
iWxPseuHeader* m_pSubHeader;
|
|
|
|
|
|
|
|
|
|
|
|
// 左侧输入
|
|
|
|
|
|
QStringList m_listParas; //哪些参数,对应英文标识
|
|
|
|
|
|
|
|
|
|
|
|
// 属性框
|
|
|
|
|
|
ZxPtyDock* m_pDockPty;
|
|
|
|
|
|
QList<IxPtySource*> m_listProps;
|
|
|
|
|
|
|
|
|
|
|
|
// 相态选择(从前面传递过来)
|
|
|
|
|
|
// map["MainOption"] = (int)opMain;
|
|
|
|
|
|
// map["SubOption"] = (int)fluidType;
|
|
|
|
|
|
QMap<QString, QVariant> m_mapPhaseInfos;
|
|
|
|
|
|
|
|
|
|
|
|
// 临时变量不涉及序列化
|
|
|
|
|
|
PvtFluidType m_oPft; //可以是单相,也可以是多相组合
|
|
|
|
|
|
|
|
|
|
|
|
// 调用的算法
|
|
|
|
|
|
iAlgPseuMethodBase* m_pAlgPseu;
|
|
|
|
|
|
|
|
|
|
|
|
// 参数列表(左侧)
|
|
|
|
|
|
QMap<QString, QVariant> m_mapParas;
|
|
|
|
|
|
};
|