|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "iWxPvtBase.h"
|
|
|
|
|
#include "mToolPvt_global.h"
|
|
|
|
|
|
|
|
|
|
class TreeWxConfig;
|
|
|
|
|
class iPseudo3Info;
|
|
|
|
|
class iPseudoCInfo;
|
|
|
|
|
class iWxPvtUtilItemPseudo;
|
|
|
|
|
class iWxPvtUtilItemPseudo3;
|
|
|
|
|
class iWxPvtUtilItemPseudoC;
|
|
|
|
|
class M_TOOL_PVT_EXPORT iWxPvtMain : public iWxPvtBase
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
explicit iWxPvtMain(QString sType, bool bPhaseS, QWidget *parent = 0);
|
|
|
|
|
~iWxPvtMain();
|
|
|
|
|
|
|
|
|
|
// 初始化
|
|
|
|
|
virtual void initUI();
|
|
|
|
|
|
|
|
|
|
// 设置油气水饱和度
|
|
|
|
|
void setFactors(VecFloat vec);
|
|
|
|
|
|
|
|
|
|
virtual bool savePvt();
|
|
|
|
|
|
|
|
|
|
// 文件标识
|
|
|
|
|
virtual QString getFilePvtTag();
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
// 初始化
|
|
|
|
|
void initUI_MainLayout();
|
|
|
|
|
void initUI_Tops();
|
|
|
|
|
void initUI_StackedWx();
|
|
|
|
|
void initUI_Bottoms();
|
|
|
|
|
|
|
|
|
|
// 具体的内容填充
|
|
|
|
|
void initToolBars();
|
|
|
|
|
void initStatckedWxs();
|
|
|
|
|
void createAndAppendSubWxByName(QString sName);
|
|
|
|
|
void calAndFreshPseu(bool bCreateIfFirst = true);
|
|
|
|
|
void calAndFreshPseu3(bool bCreateIfFirst = true);
|
|
|
|
|
void calAndFreshPseuC(bool bCreateIfFirst = true);
|
|
|
|
|
|
|
|
|
|
// 刷新
|
|
|
|
|
void refresh();
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
virtual void paintEvent(QPaintEvent*);
|
|
|
|
|
virtual void resizeEvent(QResizeEvent*);
|
|
|
|
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
void sigPvtResultsChanged(QMap<QString, float>& map);
|
|
|
|
|
void sigPseudoResults(VVecDouble& vvec);
|
|
|
|
|
void sigPseudoResults3(const VVecDouble&, const QMap<QString, iPseudo3Info*>&, const QMap<QString, double>&);
|
|
|
|
|
void sigPseudoResultsC(const VVecDouble&, const QMap<QString, iPseudoCInfo*>&, const QMap<QString, double>&);
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
|
|
|
|
|
void slotBtnTriggered();
|
|
|
|
|
void slotBtnHelp();
|
|
|
|
|
void slotBtnApply();
|
|
|
|
|
void slotBtnOK();
|
|
|
|
|
void slotBtnCancel();
|
|
|
|
|
|
|
|
|
|
// 子项表格数据更改
|
|
|
|
|
void slotPhaseItemTableChanged(QString sPara);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
// FluidType
|
|
|
|
|
QString m_sFluidType;
|
|
|
|
|
bool m_bPhaseS;
|
|
|
|
|
// Cmds
|
|
|
|
|
QStringList m_listCmds;
|
|
|
|
|
|
|
|
|
|
// 子窗体,与Cmd的ID一一对应
|
|
|
|
|
QMap<QString, iWxPvtBase*> m_mapSubWxs;
|
|
|
|
|
|
|
|
|
|
// 布局相关
|
|
|
|
|
QVBoxLayout* m_pMainLayout;
|
|
|
|
|
QToolBar* m_pToolBar;
|
|
|
|
|
QStackedWidget* m_pStackedWx;
|
|
|
|
|
|
|
|
|
|
// 各相的系数(饱和度)
|
|
|
|
|
VecFloat m_vecFactors; //依次对应油气水
|
|
|
|
|
|
|
|
|
|
// 拟压力
|
|
|
|
|
iWxPvtUtilItemPseudo* m_pPseudoItem;
|
|
|
|
|
iWxPvtUtilItemPseudo3* m_pPseudoItem3;
|
|
|
|
|
iWxPvtUtilItemPseudoC* m_pPseudoItemC;
|
|
|
|
|
};
|