QCoreApplication::quit() 是否取消所有待处理事件?
当调用 quit() 槽时,事件循环中的任何待处理事件是否被取消?
This wasn't immediately clear to me from the docs for QCoreApplication::quit().
Are any pending events in the event loop cancelled when the quit() slot is invoked?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
调用
QCoreApplication::quit()
是一样的调用QCoreApplication::exit(0)
。那里说由于事件循环已离开,我认为任何待处理的事件都会被取消。
编辑:我做了一个小测试用例来显示挂起的事件确实被取消:
在这种情况下,在
MyObject::start()
中发布的事件永远不会到达。当然,如果您删除对 QCoreApplication::quit() 的调用,它就会发生。Calling
QCoreApplication::quit()
is the same as callingQCoreApplication::exit(0)
. There it saysSince the event loop is left, I would think any pending events are cancelled.
Edit: I made a small test case to show that pending events are indeed cancelled:
In this case, the event posted in
MyObject::start()
will never arrive. It will, of course, if you remove the call toQCoreApplication::quit()
.