在Qt的事件循环中插入事件而不使用qtimer

在Qt的事件循环中插入事件而不使用qtimer,qt,event-handling,exec,while-loop,Qt,Event Handling,Exec,While Loop,我正在寻找一种方法,在Qt事件循环的每个循环中插入对我的函数或插槽的调用。我知道有一个解决方案使用Qt规定的QTimers,但他们也说调用processEvents是可能的。这是否意味着我根本不给exec打电话,而是执行以下操作 while(true) { // My processing code // blah blah qApp.processEvents(); } 我相信这不是他们的意思。有没有人对如何使用processEvents方法实现这一点有更多的想法 这个问题类似于 但我正在

我正在寻找一种方法,在Qt事件循环的每个循环中插入对我的函数或插槽的调用。我知道有一个解决方案使用Qt规定的QTimers,但他们也说调用processEvents是可能的。这是否意味着我根本不给exec打电话,而是执行以下操作

while(true)
{
// My processing code
//  blah blah
qApp.processEvents();
}
我相信这不是他们的意思。有没有人对如何使用processEvents方法实现这一点有更多的想法

这个问题类似于 但我正在寻找完全没有计时器的东西

任何参考或链接都非常感谢。 最好的


CV

您没有说为什么不想使用计时器。间隔为0的计时器似乎应该是正确的工具,您能解释一下为什么不想使用它吗?processEvents方法将在Qt的事件循环运行时调用。在GUI线程中执行长时间计算时,可以使用它保持UI的响应性。因此,我想这不是您想要的……Qt文档说,要使您的应用程序执行空闲处理,即,在没有挂起事件时执行特殊函数,请使用0超时的QTimer。那个么为什么这还不够呢?若你们真的想要完全控制,你们确实可以使用processEvents方法。只需按照您编写的方式执行循环,但要确保它是使用Qt的事件循环执行的。您没有说为什么不想使用计时器。间隔为0的计时器似乎应该是正确的工具,您能解释一下为什么不想使用它吗?processEvents方法将在Qt的事件循环运行时调用。在GUI线程中执行长时间计算时,可以使用它保持UI的响应性。因此,我想这不是您想要的……Qt文档说,要使您的应用程序执行空闲处理,即,在没有挂起事件时执行特殊函数,请使用0超时的QTimer。那个么为什么这还不够呢?若你们真的想要完全控制,你们确实可以使用processEvents方法。只需按照编写的方式执行循环,但要确保它是使用Qt的事件循环执行的。