小编Sve*_*ung的帖子

创建qt线程事件循环

我正在使用 Qt 来编写 GUI 应用程序。

主线程负责 GUI 并创建 QThread 以便对对象进行一些工作。

class Worker
{
    void start() {
        QTimer* timer = new Timer();
        connect(timer,SIGNAL(timeout()),this,SLOT(do()));
    }

    void do() {
        //do some stuff
        emit finished();
    }
}



class GUI
{
    //do some GUI work then call startWorker();

    void startWorker() {
        QThread* thread = new Thread();
        Worker* worker = new Worker();

        worker->moveToThread(thread);

        connect(thread, SIGNAL(started()), worker, SLOT(start()));
        connect(worker, SIGNAL(finished()), workerthread, SLOT(quit()));
        connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater()));
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我有几个问题:

  1. 我的工人班上的计时器不起作用。也许是因为新线程没有事件循环,但我不知道如何创建这样的循环。我试过

    connect(workerthread, SIGNAL(started()), workerthread, …

c++ windows qt multithreading

6
推荐指数
1
解决办法
9845
查看次数

标签 统计

c++ ×1

multithreading ×1

qt ×1

windows ×1