Qt 子线程如何接收主线程信号:详细教程及示例
在 Qt 中,可以使用 Qt 的信号槽机制来实现子线程接收主线程的信号。
首先,在子线程的类中定义一个信号,用于接收主线程的信号:
class WorkerThread : public QThread
{
Q_OBJECT
signals:
void mySignal();
public:
void run() override {
// 子线程的逻辑
// 在适当的地方发射信号
emit mySignal();
}
};
然后,在主线程中创建子线程对象,并连接主线程的信号与子线程的槽函数:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
WorkerThread *workerThread = new WorkerThread(this);
connect(this, &MainWindow::mySignal, workerThread, &WorkerThread::mySignal);
workerThread->start();
}
signals:
void mySignal();
};
这样,当主线程发射 'mySignal' 信号时,子线程中的 'mySignal' 信号就会被触发,从而执行相应的槽函数逻辑。
原文地址: http://www.cveoy.top/t/topic/hsY9 著作权归作者所有。请勿转载和采集!