QTreeWidget:在屏幕上查找项目

时间:2015-07-01 08:11:51

标签: c++ qt qt5

我的QTreeWidget遇到了性能问题。 它们的值会定期更新(每100毫秒)。要对价值进行处理并显示它需要一个不可忽视的时间。因此,数据越多,软件运行的速度就越慢。

当然,我可以改进很多方面,但我认为更清楚的是在不需要时不处理数据。

所以问题是: 我如何知道屏幕中显示的区域中有哪些项目?

我试图检查可见性(每个项目和 visibilityRegion ,它会返回整个树。不要那样。 我试图从小部件中获取矩形( frameReqt ),结果与之前相同。

当然,如果我不更新整个模型,一旦用户滚动,曾经隐藏的其他值将不在数据中。但这是另一个问题。

1 个答案:

答案 0 :(得分:3)

如果您需要在树状视图中显示大量数据,则应该使用与Qt Model/View system关联的QTreeViewa subclass of QAbstractItemModel。对于您的用例,这是一个更好的选择,据我所知,它已经实现了一个智能更新系统(仅在可显示的范围内询问模型中的项目)。

例如,考虑从模型类重新实现fetchMore()canFetchMore()方法。