「Qt」- QApplication, QGuiApplication and QCoreApplication

内容简介

本文简单整理QApplication, QGuiAppication, QCoreApplication这三个对象之间的区别。

# QCoreApplication

基类。在命令行应用程序中,应该使用它。

# QGuiApplication

基类 + GUI功能。在QML应用程序中,应该使用它。「QML」是一种用户界面标记语言,是一种指令使的语言,与CSS有些相似。

# QApplication

基类 + GUI + 对Widget支持。在QtWidgets应用程序中,应该使用它。

# Event loop

字面上翻译就是「事件循环」,详细的解释需要阅读文档和一些Qt相关的书籍。但简而说:事件循环是一个无限循环,它在应用程序的后台运行,处理从操作系统传入的事件(鼠标移动,点击,绘制事件,硬件事件等)以及内部通信(信号和插槽)。调用app.exec()时,事件循环开始,这也是“在执行app.exec()后,后续代码不会再继续执行”的原因。

参考文献

differences between QApplication, QGuiAppication, QCoreApplication classes