在学习QT的过程中不免随着项目的扩大,业务需求的增多,需要添加多个类文件便于计算。在计算的过程中就需要源文件之间的数据交互。
常用的数据交互方法有以下几种
1.通过QT独有的信号与槽机制完成数据的传送。
2.在建立对象的同时加入公有函数来访问类内私有变量。
3.在对象内部完成一系列复杂逻辑计算后通过设置返回值,在另一个源文件中新建局部/全局变量进行接受即可(方法简单不做过多概述)
首先第一种方法:
通过信号与槽进行传递,QT独有的信号与槽机制可以保证线程安全性,操作简单。例如下面创建一个Data类来完成数据的传递。
注意:Data类要想实现信号与槽必须继承QObject类,类内声明Q_OBJECT宏。
//头文件中进行声明
class Data : public QObject
{
Q_OBJECT
public:
//一般在构造函数中进行私有变量的初始化,在析构函数中进行delete操作
Data();
~Data();
void GenerateData();
signals:
void SendData(int sendnum);
private:
int m_num;
}
//源文件中进行类内实现
void Data::GenerateData()
{
int num=0;
num+=20;
//假设要传递num的值给主程序读取。
emit SendData(num);
}
接下来演示主函数的槽函数命令获取子函数的num;
//MainWindow里的部分头文件内容
namespace Ui {
class MainWindow;
}
class MainWin