C++程序设计之QEventLoop实现进入和退出事件循环

QEventLoop类为我们提供了一种进入和退出事件循环的方法。在任何时候,你都可以创建一个QEventLoop实例,并通过调用exec()来启动一个事件循环。在循环期间,主动调用exit()可以使exec()强制返回。

void Worker::run()
{
    QEventLoop loop;
    QTimer *timer = new QTimer;
    connect(timer, &QTimer::timeout, this, [&]()
    {
        static int count = 0;
        qDebug() << QDateTime::currentDateTime().toString();
        if(++count == 10) loop.quit();
    },
    Qt::DirectConnection);
    timer->start(1000);
    loop.exec();
}

Leave a Reply

Your email address will not be published.