使用QGraphicsScene背景中的项目

时间:2010-01-24 17:25:15

标签: qt qgraphicsview

我有一个QGraphicsScene,我最初在drawBackground()函数中绘制了背景。然而,这需要相当多的计算,结果很慢,所以我创建了一堆项目。这有预期的加速。

我的问题:有没有办法将这些项目作为背景?如果我将它们视为背景物品会不会很重要?

由于

1 个答案:

答案 0 :(得分:1)

QGraphicsScene有三个层次(参见Qt docs):

  • QGraphicsScene :: ItemLayer
  

项目图层。 QGraphicsScene呈现   通过调用,所有项目都在此层中   虚函数drawItems()。该   项目图层是在绘制之后绘制的   背景层,但之前   前景层。

  • QGraphicsScene :: BackgroundLayer
  

背景图层。 QGraphicsScene   渲染场景的背景   通过调用虚函数来分层   drawBackground()。背景图层   首先绘制所有图层。

  • QGraphicsScene :: ForegroundLayer
  

前景层。 QGraphicsScene   渲染场景的前景   通过调用虚函数来分层   drawForeground()。前景层   最后绘制了所有图层。

因此,没有 legal 方法将项目放入背景图层。 但是,您可以使用QGraphicsItem Sorting将一些项目放在其他项目后面,使它们显示为背景