前因:有时在窗体初始化的时候加载一个耗时的操作,很容易卡主界面的显示,要在加载完以后才会显示界面,这就导致了体验很卡不友好的感觉,此时你可以将耗时的加载延时或者异步进行加载,这样就会在界面显示后去执行,而不是卡在主界面。
主界面要执行一些耗时的操作时,不卡主界面的方式:
☺方式一(延时)
可以考虑QTimer的单次触发静态函数QTimer::singleShot()
函数原型:void QTimer::singleShot ( int msec, QObject * receiver, const char * member ) [static]
示例1:时间到了之后,只会触发一次
#include <QApplication>
#include <QTimer>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTimer::singleShot(600000, &app, SLOT(quit()));
...
return app.exec();
}
示例2:非阻塞

本文介绍了如何在Qt应用中避免主界面因耗时操作卡顿,提出了两种解决方案:一是使用QTimer的singleShot进行延时加载,确保界面先显示再执行;二是利用QMetaObject的invokeMethod实现异步加载。详细阐述了函数用法及参数解释,并提醒注意参数限制和数据类型注册。
2748

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



