原创 QT中使用全局的类

2023-9-6 17:37 1365 6 6 分类: 软件与OS 文集: QT学习

QT中不同模块之间传递数据可以使用全局共享的方式,比如建立一个称为SysPara 的类继承于QObject 类。

头文件中公有函数中提供一个获取这个类的指针 GetInstance()

私有成员中 存放一个 指向SysPara s_instance 指针。

 

class SysPara : public QObject {

    Q_OBJECT

public:

    static SysPara* getInstance();

// 其他成员函数和数据成员

int gloabledata;

QString gloablestr;

private:

    explicit SysPara(QObject* parent = nullptr);

    static SysPara* s_instance;

};

 

C文件中实现这些函数功能,在构造函数中,可以将公有成员做初始化。

getInstance函数中先判断 s_instance 是不是为空指针,是则实例化 SysPara,然后返回s_instance

 

SysPara* SysPara::s_instance = nullptr;

 

SysPara::SysPara(QObject* parent) : QObject(parent) {

    // 构造函数的实现

gloabledata =   ;

gloablestr =    ;

}

 

SysPara* SysPara::getInstance() {

    if (!s_instance) {

        s_instance = new SysPara();

    }

    return s_instance;

}

 

这样设计的好处是,可以在项目任意地方使用。当第一次使用时自动做初始化。

 

需要使用时在任意地方先获取全局类的指针

SysPara *pPara = SysPara::getInstance();

 

然后就可以使用pPara-> 来操作公有成员了。

pPara->gloablestr

作者: southcreek, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-408807.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条