C++ QTreeWidget:在屏幕上查找项目

C++ QTreeWidget:在屏幕上查找项目,c++,qt,qt5,C++,Qt,Qt5,我的QTreeWidget面临性能问题。 它们的值会定期更新(每100ms一次)。处理和显示该值需要不可忽略的时间。因此,数据越多,软件运行越慢 当然,我还有很多地方可以改进,但我认为更清楚的是,在不需要的时候不要处理数据 所以问题是:我如何知道屏幕上显示的区域中有哪些项目? 我试着检查可见性(每个项目和visibilityRegion,它会返回整个树。我不想这样。 我试图从小部件(frameReqt)中获取矩形,结果与之前相同 当然,如果我不更新整个模型,一旦用户滚动,其他曾经隐藏的值将不在数

我的QTreeWidget面临性能问题。 它们的值会定期更新(每100ms一次)。处理和显示该值需要不可忽略的时间。因此,数据越多,软件运行越慢

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

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

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


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

如果您需要在树视图中显示大量数据,您可能应该使用:a关联。就我所知,对于您的用例来说,这是一个更好的选择现在,它已经实现了一个智能更新系统(只要求模型显示范围内的项目)


例如,考虑重新实现模型类或模型类中的方法。

谢谢你的建议!最近读了很多关于它的文章,我做了一些很好的事情。但我的主要问题是,每次我更新一个值时,他都试图调整行的大小以适应新内容(我在VS的Profiling thingy上看到).我做了:ui.treeWidget->setUniformRowHeights(true);一切都很好:)它有帮助,但因为它没有回答主要问题,所以接受answed IMHO是不对的。我仍然不知道窗口上显示的项目是如何进行的,这将进一步帮助我。