在每个应用程序的事件循环迭代上执行槽 [英] Executing slot on every application's event loop iteration
问题描述
如何在应用程序事件循环的每次迭代中调用我的插槽?
只有我知道的是使用QTimer和每个超时(每毫秒)信号我可以调用我的插槽。
但我不喜欢这个选项,它看起来像解决方法。
How can I call my slot on every iteration of application's event loop? Only way I know is to use QTimer and on every timeout (every millisecond) signal I can call my slot. But I don't like this option, it looks like workaround.
任何建议如何更正确地这样做?
Any suggestions how to do this more correctly?
推荐答案
从Qt 4.7 QCoreApplication :: exec()文档:
From the Qt 4.7 QCoreApplication::exec() documentation:
要使应用程序执行空闲
处理(即,当没有待处理的
事件时执行特殊的
函数),请使用QTimer 0超时。
更高级的空闲处理方案
可以使用processEvents()实现。
To make your application perform idle processing (i.e. executing a special function whenever there are no pending events), use a QTimer with 0 timeout. More advanced idle processing schemes can be achieved using processEvents().
规定。看看QCoreApplication :: processEvents()以便更好地控制事件循环。
So your approach is what is prescribed. Look at QCoreApplication::processEvents() for more control over the event loop.
这篇关于在每个应用程序的事件循环迭代上执行槽的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!