热度 5
2023-9-6 17:37
1280 次阅读|
0 个评论
在 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 (); 然后就可以使用 来操作公有成员了。 gloablestr