开发者

Using items in the background of a QGraphicsScene

开发者 https://www.devze.com 2022-12-18 03:48 出处:网络
I have a QGraphicsScene where I initially drew the background in the drawBackground() function. H开发者_JS百科owever, this required quite a few calculations and turned out to be pretty slow so I creat

I have a QGraphicsScene where I initially drew the background in the drawBackground() function. H开发者_JS百科owever, 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):

  • QGraphicsScene::ItemLayer

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.

  • QGraphicsScene::BackgroundLayer

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.

  • QGraphicsScene::ForegroundLayer

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号