#pragma once #include "iWxBase.h" #include "nmSubWxs_global.h" class NM_SUB_WXS_EXPORT nmWxWizard : public iWxBase { Q_OBJECT public: enum nmWizardShowMode { NM_WSM_Basic = 0, //基础 NM_WSM_Pvt, //流体性质 NM_WSM_Krog, //Pressure&Rate NM_WSM_All, //All NM_WSM_Unknown }; public: explicit nmWxWizard(QWidget *parent = 0); ~nmWxWizard(); void clearWx(); virtual void initUI(); // 显示模式 void setWsm(nmWizardShowMode o); nmWizardShowMode getWsm(); // 子窗体 void appendSubWx(iWxBase* p); void resetSubWx(iWxBase* p = NULL); signals: void sigWizardOptionOk(); private: // 初始化 void initBase(); void updateBtnStates(); // 标题 void changeTitle(); protected: virtual void paintEvent(QPaintEvent *); virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); private slots: void on_btnBack_clicked(); void on_btnNext_clicked(); void on_btnHelp_clicked(); void on_btnCancel_clicked(); // 把Wizard中所有项进行保存或者恢复 void slotLoad(); void slotSave(); // 当流体性质改变时,本窗体响应 virtual void slotParasObtained(QMap& map); // 当Job标识改变时,本窗体响应 //void slotJobTagChanged(QString s); private: nmWizardShowMode m_oWsm; // 子窗体,本类不负责创建维护 // 分别为 Basic、Fluid、(Gas Const)、PF QVector m_vecSubWxs; // 子窗体容器 QStackedWidget* m_pStackedWidget; // Btn QPushButton* m_pBtnBack; QPushButton* m_pBtnNext; // 是否显示气体组分(在流体为 gas 时)显示 bool m_bShowGasConst; int m_nIndexHide; };