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 ;
}
打开主窗口
a. GetMainWindow ( ) -> show ( ) ;
QApplication :: processEvents ( ) ;
启动事件处理
{
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 ;