#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& map); void sigPseudoResults(VVecDouble& vvec); void sigPseudoResults3(const VVecDouble&, const QMap&, const QMap&); void sigPseudoResultsC(const VVecDouble&, const QMap&, const QMap&); 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 m_mapSubWxs; // 布局相关 QVBoxLayout* m_pMainLayout; QToolBar* m_pToolBar; QStackedWidget* m_pStackedWx; // 各相的系数(饱和度) VecFloat m_vecFactors; //依次对应油气水 // 拟压力 iWxPvtUtilItemPseudo* m_pPseudoItem; iWxPvtUtilItemPseudo3* m_pPseudoItem3; iWxPvtUtilItemPseudoC* m_pPseudoItemC; };