在 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' 信号就会被触发,从而执行相应的槽函数逻辑。

Qt 子线程如何接收主线程信号:详细教程及示例

原文地址: http://www.cveoy.top/t/topic/hsY9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录