QT 刷新界面时假死

我们知道,在进行费时的操作时,比如从网络读取数据,从本地数据库读取数据等,为了避免界面卡死,把这些操作放到线程里处理。
待处理完毕后,通过信号槽函数机制通知到 UI 线程进行数据刷新。如果是比较简单的控件,那么数据来了就瞬间刷新用户感觉不到什么。
可有时候是比较复杂的界面时,比如树控件,数据量又较大时,又需要递归写入数据,需要排序等复杂逻辑,导致刷新的时候界面就会卡死一阵子。
那么为了避免这种情况,有个很简单的处理方式。那就是在循环里面,每次插入数据后加上一句

QApplication::processEvents();

这样,我们设置的加载动画可以一直转着圈圈,主界面也可以拖动,不影响用户其他操作。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qiangzi4646/article/details/80668485