在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
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论