C++ 在每个应用程序上执行插槽';s事件循环迭代

C++ 在每个应用程序上执行插槽';s事件循环迭代,c++,qt,event-loop,qeventloop,C++,Qt,Event Loop,Qeventloop,如何在应用程序事件循环的每次迭代中调用插槽? 我知道的唯一方法是使用QTimer,在我可以调用插槽的每个超时(每毫秒)信号上使用QTimer。 但我不喜欢这个选项,它看起来像是一个解决办法 如何更正确地执行此操作,有什么建议吗?来自Qt 4.7 QCoreApplication::exec()文档: 使应用程序执行空闲状态 处理(即执行特殊的 只要没有挂起的 事件),使用超时为0的QTimer。 更高级的空闲处理方案 可以使用processEvents()实现 所以你的方法就是规定的。查看QCo

如何在应用程序事件循环的每次迭代中调用插槽? 我知道的唯一方法是使用QTimer,在我可以调用插槽的每个超时(每毫秒)信号上使用QTimer。 但我不喜欢这个选项,它看起来像是一个解决办法


如何更正确地执行此操作,有什么建议吗?

来自Qt 4.7 QCoreApplication::exec()文档:

使应用程序执行空闲状态 处理(即执行特殊的 只要没有挂起的 事件),使用超时为0的QTimer。 更高级的空闲处理方案 可以使用processEvents()实现


所以你的方法就是规定的。查看QCoreApplication::processEvents()以获得对事件循环的更多控制。

您还可以查看在QCoreApplication::instance()对象上使用installEventFilter方法。这将允许您在处理应用程序中的所有小部件之前访问所有事件

您的QTimer可以有一个0的超时,它将在每个事件循环中运行一次,而不是在每个毫秒中运行一次,它可能在每个事件循环中只运行一次。:-)不过还是有点变通。是的,我知道这一点,我现在正在使用它,但这不是我想要的。