我需要为我的应用程序绘制一个大网格(如100行,1000列)。我正在使用带有opengl视口集的QGraphicsView(不会提高性能)。
该应用程序具有合理的响应能力,但我想知道我是否做得对。
基本上我有一个继承QGraphicsItem的GridItem,我尝试了两件事:
1)构造函数创建了数千个QGraphicsRectItem,将此(GridItem)作为(QGraphicsItem *)父级传递。我已正确实现了boundingRect()成员(我相信)。
2)构造函数以相同的方式创建了许多QGraphicsLineItem。
在这两种情况下,GridItem的paint方法都不做任何操作,因为Qt会自动处理子元素的绘制。
选项1)比选项2)快三倍。我的结论是,延伸到视口之外的大线没有太多优化,并且不必要地重绘了太多对象。你认为这是正确的解释吗?
这让我想知道我是否正确地处理了这个问题。你会如何绘制一个非常大的网格?
在该网格的顶部,我有另一层可点击,可拖动等方块。
提前致谢!
此致
djfm