这是 Qt 文档的引用:
对于任何使用 Qt 的 GUI 应用程序,只有一个 QApplication 对象
这很清楚。但我不知道为什么。我在面试的时候被问到这样一个问题,现在我找不到合适的答案,谁能解释一下吗?
这是 Qt 文档的引用:
对于任何使用 Qt 的 GUI 应用程序,只有一个 QApplication 对象
这很清楚。但我不知道为什么。我在面试的时候被问到这样一个问题,现在我找不到合适的答案,谁能解释一下吗?
QCoreApplication
文档给出了提示:
QCoreApplication 包含主事件循环,来自操作系统(例如,定时器和网络事件)和其他来源的所有事件都在其中被处理和分派。它还处理应用程序的初始化和完成,以及系统范围和应用程序范围的设置。
并且在任何给定时间(在单个线程中)只能运行一个事件循环,因此不同的QCoreApplication
对象需要相互调用。在处理事件队列时,每个队列只能看到整个交互的一部分。对我来说似乎没有吸引力...
另外,我认为,这基本上是整个过程的抽象,因此在 Qt 进程和对象QCoreApplication
之间强制执行 1:1 对应是有意义的。QCoreApplication
从技术上讲,诸如QCoreApplication::instance()
或相应的qApp
宏之类的东西显然需要一个QCoreApplication
实例。
QApplication
包含几个单例,如消息循环和其他。