【发布时间】:2010-01-24 17:25:14
【问题描述】:
我有一个 QGraphicsScene,我最初在 drawBackground() 函数中绘制了背景。然而,这需要大量的计算并且结果非常慢,所以我创建了一堆项目。这具有预期的加速。
我的问题:有没有办法将这些项目视为背景?如果我将它们视为背景项目,这有什么关系吗?
谢谢
【问题讨论】:
标签: qt qgraphicsview
我有一个 QGraphicsScene,我最初在 drawBackground() 函数中绘制了背景。然而,这需要大量的计算并且结果非常慢,所以我创建了一堆项目。这具有预期的加速。
我的问题:有没有办法将这些项目视为背景?如果我将它们视为背景项目,这有什么关系吗?
谢谢
【问题讨论】:
标签: qt qgraphicsview
QGraphicsScene 分为三层(参见 Qt 文档):
项目层。 QGraphicsScene 渲染 所有项目都在这一层通过调用 虚函数drawItems()。这 项目层是在之后绘制的 背景层,但之前 前景层。
背景层。 QGraphicsScene 在此渲染场景的背景 通过调用虚函数层 绘制背景()。背景层 首先绘制所有层。
前景层。 QGraphicsScene 在此渲染场景的前景 通过调用虚函数层 绘制前景()。前景层 在所有图层的最后绘制。
因此,没有合法 方法可以将项目放入背景层。 但是,您可以使用 QGraphicsItem Sorting 将一些项目放在其他项目之后,使它们显示为 背景。
【讨论】: