写一个QT线程demo
时间: 2023-11-30 08:40:33 浏览: 85
当然,以下是一个简单的QT线程的示例代码:
```cpp
#include <QCoreApplication>
#include <QThread>
#include <QDebug>
// 继承自QThread的自定义线程类
class MyThread : public QThread
{
public:
void run() override
{
qDebug() << "子线程开始执行";
// 模拟耗时操作
for (int i = 0; i < 5; ++i) {
QThread::sleep(1); // 线程休眠1秒
qDebug() << "子线程执行中...";
}
qDebug() << "子线程执行完毕";
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "主线程开始执行";
// 创建自定义线程对象
MyThread thread;
// 启动线程
thread.start();
// 主线程继续执行其他操作
for (int i = 0; i < 3; ++i) {
QThread::sleep(1); // 线程休眠1秒
qDebug() << "主线程执行中...";
}
// 等待子线程执行完毕
thread.wait();
qDebug() << "主线程执行完毕";
return a.exec();
}
```
这个示例中,我们首先定义了一个继承自QThread的自定义线程类`MyThread`,并在其中重写了`run()`函数,在`run()`函数中编写了子线程要执行的代码逻辑。然后在`main()`函数中,我们创建了`MyThread`对象`thread`,并通过`thread.start()`启动线程。主线程和子线程会并发执行,主线程通过`sleep()`函数模拟耗时操作,子线程通过输出语句模拟耗时操作。最后,通过`wait()`函数等待子线程执行完毕,然后主线程退出。
请确保在.pro文件中添加`CONFIG += thread`以启用QT线程功能。
阅读全文