Qt 在QGraphicscene的背景中使用项

Qt 在QGraphicscene的背景中使用项,qt,qgraphicsview,Qt,Qgraphicsview,我有一个QGraphicscene,最初在这里我在traffackground()函数中绘制了背景。然而,这需要相当多的计算,结果是相当缓慢,所以我创建了一系列的项目,而不是。这达到了预期的加速效果 我的问题是:有没有办法将这些项目作为背景?如果我把它们当作背景物品来处理,这有什么关系吗 谢谢QGraphicscene有三个层(参见Qt文档): QGraphicscene::ItemLayer 项目层。qgraphicscene渲染 通过调用 虚拟函数drawItems()。这个 项目层是在

我有一个QGraphicscene,最初在这里我在traffackground()函数中绘制了背景。然而,这需要相当多的计算,结果是相当缓慢,所以我创建了一系列的项目,而不是。这达到了预期的加速效果

我的问题是:有没有办法将这些项目作为背景?如果我把它们当作背景物品来处理,这有什么关系吗


谢谢

QGraphicscene有三个层(参见Qt文档):

  • QGraphicscene::ItemLayer
项目层。qgraphicscene渲染 通过调用 虚拟函数drawItems()。这个 项目层是在 背景层,但在 前景层

  • QGraphicscene::BackgroundLayer
背景层。QsCene 在此场景中渲染场景的背景 通过调用虚拟函数进行分层 牵引杆接地()。背景层 首先绘制所有层

  • QGraphicscene::前地面层
前景层。QsCene 在此场景中渲染场景的前景 通过调用虚拟函数进行分层 drawForeground()。前景层 在所有图层的最后绘制

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

我想我仍然可以将这些内容放在DruckGround()中,但缓存所有计算的内容,因为它们是静态的。然而,这导致了我不喜欢的背景分为两个阶段。您知道使用项目替代是否有任何缺点吗?它们是一堆带有透明胶片的文本和矩形项。我认为最好的方法是使用这些项。不知道有什么缺点。