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(); }