2

我有一个 QGraphicsScene,我最初在 drawBackground() 函数中绘制了背景。然而,这需要大量的计算并且结果非常慢,所以我创建了一堆项目。这具有预期的加速。

我的问题:有没有办法将这些项目视为背景?如果我将它们视为背景项目,这是否重要?

谢谢

4

1 回答 1

1

QGraphicsScene 有三层(参见 Qt 文档):

  • QGraphicsScene::ItemLayer

项目层。QGraphicsScene 通过调用虚函数drawItems() 来渲染该层中的所有项目。项目层绘制在背景层之后,但在前景层之前。

  • QGraphicsScene::BackgroundLayer

背景层。QGraphicsScene 通过调用虚函数drawBackground() 在这一层渲染场景的背景。背景层首先绘制在所有层中。

  • QGraphicsScene::ForegroundLayer

前景层。QGraphicsScene 通过调用虚函数drawForeground() 在这一层渲染场景的前景。前景层在所有层中最后绘制。

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

于 2010-01-24T17:49:56.433 回答