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();
  }

 

 

 

 

 

 

########################

 

posted @ 2021-05-17 13:09  西北逍遥  阅读(998)  评论(0编辑  收藏  举报