我有一个QGraphicsScene,我最初在drawBackground()函数中绘制了背景。然而,这需要相当多的计算,结果很慢,所以我创建了一堆项目。这有预期的加速。
我的问题:有没有办法将这些项目作为背景?如果我将它们视为背景物品会不会很重要?
由于
答案 0 :(得分:1)
QGraphicsScene有三个层次(参见Qt docs):
项目图层。 QGraphicsScene呈现 通过调用,所有项目都在此层中 虚函数drawItems()。该 项目图层是在绘制之后绘制的 背景层,但之前 前景层。
背景图层。 QGraphicsScene 渲染场景的背景 通过调用虚函数来分层 drawBackground()。背景图层 首先绘制所有图层。
前景层。 QGraphicsScene 渲染场景的前景 通过调用虚函数来分层 drawForeground()。前景层 最后绘制了所有图层。
因此,没有 legal 方法将项目放入背景图层。 但是,您可以使用QGraphicsItem Sorting将一些项目放在其他项目后面,使它们显示为背景。