#pragma once #include "iWxConfigBase.h" #include "iGuiConfig_global.h" class TreeWxConfig; class X_GUI_CONFIG_EXPORT iWxConfigWizard : public iWxConfigBase { Q_OBJECT public: explicit iWxConfigWizard(QWidget *parent = 0); ~iWxConfigWizard(); // 初始化 virtual void initUI(); // 清空 void clearWx(); signals: void sigCurrentWxChanged(ConfigWxType&); private: // 初始化 void initBase(); void initBase_MainLayout(); void initBase_TreeWx(); QVBoxLayout* initBase_ConfigWxs(); QHBoxLayout* initBase_ToolBars(); void refreshOthers(); // 子窗体 void initSubWxs(); void dealSubWxs_Special(); // 刷新 void freshCommonBtns(iWxConfigBase* pWx); void freshOwnBtns(iWxConfigBase* pWx); void freshTitle(iWxConfigBase* pWx); void freshTreeSelNode(iWxConfigBase* pWx); protected: virtual void paintEvent(QPaintEvent *); virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); private slots: // 左侧树双击 virtual void slotTreeItemChanged(QTreeWidgetItem*, int); void slotSubWxChanged(int); // 把Wizard中所有项进行保存或者恢复 void slotSaveAll(); void slotSaveActionTriggered(); // 按钮 void on_btnBack_clicked(); void on_btnNext_clicked(); void on_btnHelp_clicked(); // 属性编辑与XPF编辑工具的交互 void slotOpenWithXpfTool(QString s); private: QHBoxLayout* m_pMainLayout; // 子窗体,本类不负责创建维护 QVector m_vecSubWxs; // TreeCtrl TreeWxConfig* m_pTreeWx; // 子窗体容器 QStackedWidget* m_pStackedWidget; // Tags QLabel* m_pLblTitle; // Btn QPushButton* m_pBtnBack; QPushButton* m_pBtnNext; QPushButton* m_pBtnSave; // Menu QMenu* m_pSaveBtnMenu; // PropEdit与XpfEdit的索引 int m_nIndexProp; int m_nIndexXpf; };