如何在应用程序事件循环的每次迭代中调用我的插槽?我知道的唯一方法是使用 QTimer 并且在每个超时(每毫秒)信号上我都可以调用我的插槽。但我不喜欢这个选项,它看起来像解决方法。
任何建议如何更正确地做到这一点?
如何在应用程序事件循环的每次迭代中调用我的插槽?我知道的唯一方法是使用 QTimer 并且在每个超时(每毫秒)信号上我都可以调用我的插槽。但我不喜欢这个选项,它看起来像解决方法。
任何建议如何更正确地做到这一点?
从 Qt 4.7 QCoreApplication::exec() 文档:
要让您的应用程序执行空闲处理(即在没有未决事件时执行特殊功能),请使用具有 0 超时的 QTimer。使用 processEvents() 可以实现更高级的空闲处理方案。
所以你的方法是规定的。查看 QCoreApplication::processEvents() 以获得对事件循环的更多控制。
您还可以查看在 QCoreApplication::instance() 对象上使用 installEventFilter 方法。这将允许您在应用程序中的所有小部件处理它们之前访问所有事件。