QGraphicsView绘制巨大的网格 - 如何优化?

时间:2012-02-15 13:56:03

标签: qt4 qgraphicsview

我需要为我的应用程序绘制一个大网格(如100行,1000列)。我正在使用带有opengl视口集的QGraphicsView(不会提高性能)。

该应用程序具有合理的响应能力,但我想知道我是否做得对。

基本上我有一个继承QGraphicsItem的GridItem,我尝试了两件事:

1)构造函数创建了数千个QGraphicsRectItem,将此(GridItem)作为(QGraphicsItem *)父级传递。我已正确实现了boundingRect()成员(我相信)。

2)构造函数以相同的方式创建了许多QGraphicsLineItem。

在这两种情况下,GridItem的paint方法都不做任何操作,因为Qt会自动处理子元素的绘制。

选项1)比选项2)快三倍。我的结论是,延伸到视口之外的大线没有太多优化,并且不必要地重绘了太多对象。你认为这是正确的解释吗?

这让我想知道我是否正确地处理了这个问题。你会如何绘制一个非常大的网格?

在该网格的顶部,我有另一层可点击,可拖动等方块。

提前致谢!

此致

djfm

0 个答案:

没有答案