参考帮助文档描述
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的时候,加载的界面显示和加载的界面由于加载时间过长占用界面导致无法响应用户操作,导致程序处于等待响应阶段。
本文深入解析了QSplashScreen在Qt应用程序中的作用与实现方法。它主要用于解决应用启动时的加载界面显示问题,避免因长时间加载导致的界面无响应,通过合理使用processEvents()函数,可以有效提升用户体验。
516

被折叠的 条评论
为什么被折叠?



