QApplication
QApplication类管理GUI应用程序的控制流和主要设置。
QApplication专门为qgui应用程序提供基于QWidget的应用程序所需的一些功能。它处理特定于小部件的初始化、终结。
对于任何使用Qt的GUI应用程序,无论应用程序在任何给定时间是否有0、1、2或更多窗口,都只有一个QApplication对象。对于非基于QWidget的Qt应用程序,请改用QGuiApplication,因为它不依赖于qtwidts库。
一些GUI应用程序提供了一种特殊的批处理模式,即提供用于执行任务的命令行参数,而无需手动干预。在这种非GUI模式下,实例化一个普通的QCoreApplication就足够了,以避免不必要地初始化图形用户界面所需的资源。下面的示例演示如何动态创建适当类型的应用程序实例:
QCoreApplication* createApplication(int &argc, char *argv[]) { for (int i = 1; i < argc; ++i) if (!qstrcmp(argv[i], "-no-gui")) return new QCoreApplication(argc, argv); return new QApplication(argc, argv); } int main(int argc, char* argv[]) { QScopedPointer<QCoreApplication> app(createApplication(argc, argv)); if (qobject_cast<QApplication *>(app.data())) { // start GUI version... } else { // start non-GUI version... } return app->exec(); }
########################
QQ 3087438119