参考帮助文档描述
QSplashScreen是用于在应用启动的时候的闪屏的一个widget,这个widget通常是在应用启动后显示的。一般在应用需要很长时间才能加载显示主界面的时候使用这个类来处理(比如数据库,需要连接网络的应用等等)
官方给予的示例
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPixmap pixmap(":/splash.png");
QSplashScreen *splash = new QSplashScreen(pixmap);
splash->show();
//... // Loading some items
splash->showMessage("Loaded modules");
qApp->processEvents();
//... // Establishing connections
splash->showMessage("Established connections");
qApp->processEvents();
...
QMainWindow window;
window.show();
splash.finish(&window);
return app.exec();
}
此处需要解释的事,processEvents()函数;
我们使用Qt的时候,经常碰到逻辑部分处理某一些功能非常耗时,占用了主线程(GUI界面线程),导致我们需要等待这个操作使用结束后才可以继续下一步操作。这就是我们常说的“卡顿”现象。processEvents()函数的作用就是,告诉Qt处理所有那些还没有被处理的各类事件。以上述示例解释:Loading some items后showMessage,此时调用processEvents()是告诉Qt,你不用一直盯着Loading some items,有其他的事情需要你去处理。(后面单独写一个processEvents的相关知识)。
这个就很好的解决了在初始启动app的时候,加载的界面显示和加载的界面由于加载时间过长占用界面导致无法响应用户操作,导致程序处于等待响应阶段。