Q_GLOBAL_STATIC
来源:互联网 发布:新速特软件站下载 编辑:程序博客网 时间:2024/05/16 07:48
typedef enum { ShowType_Login = 0, ShowType_ResourceBar, ShowType_Setting, ShowType_Class, ShowType_MoreClass,}NavigationShowType;class NavigtionManager : public QObject{ Q_OBJECTpublic: explicit NavigtionManager(QObject *parent = 0);public: static NavigtionManager *instance();signals: void exitApp();public slots: void showWithType(NavigationShowType showType); void moreClassDialogReturnAction(); void loginAction(); void beginingClassAction(ClassDataItem *pItem); void logoutAction();public: void showMoreClassDialog(const QString &subjectID, const QString &charpterID); void showClassDialog(); void showResourceBar(); void showSettingDialog(); void showLoginDialog(); void showMainDialog(); void showUserInfoWidget(); void showWebToolWidget(QUrl url); void showClassIdDialog(); void showCloseConfirmDlg();private: bool checkClassId();private: ResourceDialog *_pResDlg; LoginDialog *_pLoginDlg; ClassMenuDialog *_pClassDlg; MoreClassDialog *_pMoreDlg; SettingDialog *_pSettingDlg; Dialog *_pMainDlg; CUserInforWidget *_pUserInfoWidget; LoadingDlg * _pLoadingDlg; NavigationShowType _showType; DragWidget *_pDrag; CTeamLearningIdWidget * _pClassIdDlg; CCloseWidget * _pCloseConfirmDlg;};
Q_GLOBAL_STATIC可以帮助我们建立一个全局变量
navigtionmanager.h文件中:
public: static NavigtionManager *instance();
navigtionmanager.cpp文件中:
Q_GLOBAL_STATIC(NavigtionManager, navigtionInstance)NavigtionManager *NavigtionManager::instance(){ return navigtionInstance;}
根据不同的模式显示界面的不同状态
void NavigtionManager::showWithType(NavigationShowType showType){ if (showType == ShowType_ResourceBar) { showResourceBar(); } else if (showType == ShowType_Class) { showClassDialog(); } else if (showType == ShowType_Setting) { showSettingDialog(); }}
NavigtionManager::instance()->showWebToolWidget(QUrl(pListWebTool->at(tag - LOCALTOOLSMAXCOUNT)->url));
可以将我们项目中所用到的一些变量(窗口类)通过类的方式进行存放,每次通过访问全局变量来获取或者修改数据。
1 0