在Qt中实现多线程,除了使用全局变量。还可以使用信号/槽机制。
以下例子使用信号/槽机制。
功能: 在主线程A界面上点击按钮,然后对应开起一个线程B。线程B往线程A发送一个字符串,线程A打印出来。
1、工程文件目录
2、thread.h 和thread.cpp
#ifndef THREAD_H
#define THREAD_H
#include<QThread>
#include<QString>
class Thread : public QThread
{
Q_OBJECT
public:
Thread();
virtual void run();
void stop();
signals:
void send(QString msg);
private:
};
#endif // THREAD_H
#include "thread.h"
Thread::Thread()
{
}
void Thread::run()
{
//发送一个信号给主线程
emit send(QString("thread"));
}
3、widget.h和widget.cpp
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include"thread.h"
namespace Ui {
class Widget;
}
clas