我看不懂,但我大受震撼
一般事件循环都是由exec()开启,
比如:
1 QCoreApplicaton::exec()
2 QApplication::exec()
3 QDialog::exec()
4 QThread::exec()
5 QDrag::exec()
6 QMenu::exec()
这些都开启了事件循环,程序在exec()里无线循环,被阻塞,让跟在exec()后面的代码得不到运行机会,直到程序冲exec()中跳出。从exec()跳出时,事件循环即被终止。
QEventLoop::quit()能够终止事件循环
QEventLoop eventLoop;
connect(this,&NtpServer::quitLoop,&eventLoop,&QEventLoop::quit);
eventLoop.exec(QEventLoop::EventLoopExec);
这段代码的意思是:直到接收到quitLoop()信号,才退出时间循环,回到主进程,继续执行下面的语句。