QT软件main函数的一般步骤

该文详细阐述了QT软件中main函数的执行步骤,包括OpenGL的初始设置,如双缓冲和调试上下文的配置;本地化语言的设定,使用QLocale进行默认语言设置;Splash屏幕的展示及业务资源初始化;主窗口的打开;以及事件处理的启动和异常捕获机制。整个流程覆盖了程序启动的关键环节。
摘要由CSDN通过智能技术生成

Opengl初始设置

有opengl的情况下参考
#ifdef USE_GL
    {
        QSurfaceFormat format = QSurfaceFormat::defaultFormat();
        format.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
        format.setStencilBufferSize(0);
#ifdef USE_GL_WINDOWS
        format.setStereo(true);
#endif
#ifdef QT_DEBUG
       format.setOption(QSurfaceFormat::DebugContext, true);
#endif
        QSurfaceFormat::setDefaultFormat(format);
    }

本地化语言

	{
        QLocale locale = QLocale(QLocale::Chinese);
        locale.setNumberOptions(QLocale::c().numberOptions());
        QLocale::setDefault(locale);
	}
	Q_INIT_RESOURCE(app);
    QApplication a(argc, argv);
	//设置应用程序的信息
	a.setOrganizationName("My");
    a.setApplicationName("MyApp");

Splash 画面

	QSplashScreen* splash = 0;
    QTime splashTime;
    {
        splashTime.start();
 		QPixmap pixmap(QString::fromUtf8(":/images/logo_gs.png"));
        splash = new QSplashScreen(pixmap, Qt::WindowStaysOnTopHint);
        splash->show();
        QApplication::processEvents();
    }

业务资源初始化

	if (!OBJ->init(false))
    {
        QMessageBox::warning(nullptr, QObject::tr("提示"),QObject::tr("系统参数配置加载失败,程序退出!"));
        return;
    }
        

打开主窗口

	//初始化Dump功能
    //ExceptionDumpGenerate::initExceptionDumpGenerate(); 
    // 弹出自己的主窗口
    a.GetMainWindow()->show(); 
    QApplication::processEvents();

启动事件处理

	//关闭Splash
	{
        while (splashTime.elapsed() < 1000)
        {
            splash->raise();
          	QApplication::processEvents();
        }
        splash->close();
        QApplication::processEvents();
        delete splash;
        splash = 0;
   }
   // 启动事件处理
   int ret = 0;
   try
   {
        ret = a.exec();
   }
   catch (...)
   {
       QMessageBox::warning(0, "错误", "程序崩溃!");
   }
   return ret ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值