【发布时间】:2017-04-14 08:07:28
【问题描述】:
关于QApplication的exec函数,我已经了解了以下内容:
QApplication exec 启动主事件循环。 它启动 GUI。它处理信号并在接收到它们时调用适当的槽。它一直等到调用 exit 并返回在 exit 中设置的值。
现在,当我们说事件循环时,是不是说Qt的内部代码中有一些while循环在运行,并且在那个while循环中写了处理信号和槽的方法?
【问题讨论】:
-
事件循环意味着你的代码一直在运行,把它想象成每次都在刷新,所以会根据你的情况不断地看到和做出改变。
-
你可以把它想象成一个事件驱动的程序,只是不断的等待事件,然后会做一些事情。大多数 GUI 和游戏都使用事件循环。在游戏开发中有一个事件循环,因为你需要不断地检查用户是否做了某事,所以需要有一个事件发生。
-
直连槽不进入事件队列,只进入队列连接。
-
这对我真的很有帮助,看看link
-
请注意,事件循环与信号和插槽本身的概念无关。它被用作在队列连接中或在自动连接中跨线程传递槽/函子调用的实现细节。
标签: c++ qt event-loop qapplication