我有一个 QGraphicsScene,我最初在 drawBackground() 函数中绘制了背景。然而,这需要大量的计算并且结果非常慢,所以我创建了一堆项目。这具有预期的加速。
我的问题:有没有办法将这些项目视为背景?如果我将它们视为背景项目,这是否重要?
谢谢
我有一个 QGraphicsScene,我最初在 drawBackground() 函数中绘制了背景。然而,这需要大量的计算并且结果非常慢,所以我创建了一堆项目。这具有预期的加速。
我的问题:有没有办法将这些项目视为背景?如果我将它们视为背景项目,这是否重要?
谢谢
QGraphicsScene 有三层(参见 Qt 文档):
项目层。QGraphicsScene 通过调用虚函数drawItems() 来渲染该层中的所有项目。项目层绘制在背景层之后,但在前景层之前。
背景层。QGraphicsScene 通过调用虚函数drawBackground() 在这一层渲染场景的背景。背景层首先绘制在所有层中。
前景层。QGraphicsScene 通过调用虚函数drawForeground() 在这一层渲染场景的前景。前景层在所有层中最后绘制。
因此,没有合法的方式将项目放入背景层。但是,您可以使用 QGraphicsItem Sorting 将一些项目放在其他项目之后,使它们显示为背景。