Qt写一个线程代码?c++
时间: 2024-11-22 08:35:07 浏览: 12
在Qt中创建一个新的线程通常使用`QThread`类。以下是一个简单的示例,展示如何创建一个新线程并让它运行一个自定义函数:
```cpp
#include <QObject>
#include <QThread>
#include <QDebug>
class WorkerThread : public QObject // 子类化QObject用于管理线程生命周期
{
Q_OBJECT
public slots: // 公有槽,可以在主线程中直接调用
void doWork() {
qDebug() << "Worker thread started";
// 这里编写你的工作代码
// 例如,可以睡眠几秒模拟耗时操作
QThread::sleep(5000);
qDebug() << "Worker thread finished";
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建线程对象
WorkerThread worker;
QThread *thread = new QThread; // 新建一个线程对象
// 将worker对象移动到新线程中
worker.moveToThread(thread);
// 连接信号和槽,当线程开始时启动doWork()
connect(thread, &QThread::started, &worker, &WorkerThread::doWork);
// 启动新线程
thread->start();
// 主线程继续运行,等待新线程完成
app.exec();
// 等待新线程结束
delete thread;
return app.exec();
}
阅读全文