11.1.4 子线程与主线程通信实例
众所周知,QT的主线程必须保持畅通,才能刷新UI界面。如果涉及到使用子线程更新UI上的控件时就需要自定义信号与槽函数。比如:在网络编程中,可以在子线中接收网络数据,然后发送信号给主线程更新界面。
下面代码实现子线程每一秒钟通过信号给主线程传递一个数字,在主线程的UI界面进行显示。运行效果如下:(配套代码编号CH11-2)
1.“thread.h”文件代码示例
#ifndef THREAD_H
#define THREAD_H
#include
class Thread : public QThread
{
Q_OBJECT
public:
Thread();
signals:
void TxData(int data); //信号声明
protected:
void run(); //线程执行的函数
};
#endif // THREAD_H
2.“thread.cpp”文件代码示例
#include "thread.h