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
原创粉丝点击