我正在用Qt (c++)编写一个软件,该软件解析具有大量数据(数十万行)的文本文件,然后将每行链接到视频的特定帧。然后它播放视频,同时在QTreeWidget中显示与当时显示的帧相关的文件行。
因此,由于视频是30fps,软件需要每30ms更新一次QTreeWidget,所以它必须清除QTreeWidget,然后将新行放入其中。
然而,当我面对每帧大约100-200行时,更新速度相当快,但如果我必须每帧处理1000行,它就会变得非常慢,程序最终会崩溃。
有没有办法加速更新?每30毫秒1000 QTreeWidgetItems的速率太高,或者我做错了什么?
您应该首先禁用更新QTreeWidget:
MyTreeWidget→setUpdatesEnabled(假);
然后更新项目,并使树更新:
MyTreeWidget→setUpdatesEnabled(真正);
如果这没有很大帮助,可以考虑使用带有自定义数据模型的QTreeView。