I have a QGraphicsScene where I initially drew the background in the drawBackground() function. However, this required quite a few calculations and turned out to be pretty slow so I created a bunch of items instead. This had the expected speedup.
My question: is there a way to treat these items as the background? Would it even matter if I treated them as background items?
Thanks
There are three layers in terms of QGraphicsScene (see Qt docs):
The item layer. QGraphicsScene renders all items are in this layer by calling the virtual function drawItems(). The item layer is drawn after the background layer, but before the foreground layer.
The background layer. QGraphicsScene renders the scene's background in this layer by calling the virtual function drawBackground(). The background layer is drawn first of all layers.
The foreground layer. QGraphicsScene renders the scene's foreground in this layer by calling the virtual function drawForeground(). The foreground layer is drawn last of all layers.
Threrefore, there is no legal way to put an item into the background layer. However, you could use QGraphicsItem Sorting to place some items behind others, making them to appear as a background.