qt 在main函数中使用QObject::connect(MyThread1, SIGNAL(
时间: 2024-10-11 11:04:17 浏览: 55
QObject::moveToThread用例
5星 · 资源好评率100%
在Qt中,`QObject::connect()`是一个非常重要的信号槽连接机制,它允许你在主线程外创建的线程(如`MyThread1`)发送信号(SIGNAL()),并且确保这个信号能够在主线程中的某个接收者对象上触发相应的槽函数(slot)。例如,假设`MyThread1`有一个完成任务后的信号`finished()`,你可以这样做:
```cpp
// 定义信号
Q_SIGNAL void taskFinished();
// 创建线程对象
MyThread1 *thread = new MyThread1();
// 连接信号和槽
QObject::connect(thread, &MyThread1::taskFinished, this, [this] {
// 这里是槽函数,当线程任务完成后会被执行
processTask();
});
// 启动线程
thread->start();
// 线程运行结束后,会自动发出信号
// 注意,你需要确保线程结束时会发出信号,比如使用join()或者设置一个quit手柄
```
在这个例子中,`processTask()`函数就是槽函数,会在`taskFinished`信号被发射时执行。
阅读全文