问题说明:使用QListWidget创建一个文件管理窗体时,再向QListWidget中插入QListWidgetItem发生界面卡,假死
问题分析:该问题还是和Qt的框架有关系,因为Qt的所有关乎界面的操作都是跑在同一个线程中的,如果有一个特别耗时的行为操作了界面,就会导致界面,就有可能发生界面假死,卡住的现象。
解决方法:
后来在查看相关文档资料时,看到有这么一个函数接口
bool QEventLoop::processEvents(QEventLoop::ProcessEventsFlags flags = AllEvents)
//和
void QEventLoop::processEvents(QEventLoop::ProcessEventsFlags flags, int maxTime)
以上两个函数接口的作用是实现非阻塞的延时操作,防止界面假死。
用法:将该函数接口置于耗时操作之中,让其每次循环操作的时候都调用该函数接口,强制界面进行刷新操作。