#pragma once #include "iDlgBase.h" #include "iGuiNavi_global.h" class X_GUI_NAVI_EXPORT iBaseNavi : public iDlgBase { Q_OBJECT public: explicit iBaseNavi(QString sCur, \ bool bNeedOpenProj, \ QWidget *parent = 0); ~iBaseNavi(); // 初始化 virtual void initUI(); // 返回结果 QString getModelOption(); QString getProjDir(); bool isRequireProjOpened(int& nIndex, \ QString& sUrl); private slots: // 选中某项 void slotModelItemClicked(); // 启用同步打开项目 void slotCbxChecked(); // 项目下拉changed void slotPrjCmxChanged(int n); protected: // 布局序列化 void initUI_Tags(); void initUI_Buttons(); void initUI_Projs(); void addOneHorLine(); void addOneSpacer(int n = -1); // 项目下拉 void fillProj(QComboBox* p); QString getCurProj(); // 重载为了背景 virtual void paintEvent(QPaintEvent *); private: QVBoxLayout* m_pMainLayout; QCheckBox* m_pCbxProj; QComboBox* m_pCmxProj; QMap m_mapNames; QString m_sOption; QString m_sProjDir; bool m_bNeedOpenProj; };