最初にdrawBackground()関数で背景を描画したQGraphicsSceneがあります。ただし、これにはかなりの数の計算が必要であり、かなり遅いことが判明したため、代わりに多数のアイテムを作成しました。これは予想通りのスピードアップでした。
私の質問:これらのアイテムを背景として扱う方法はありますか?それらを背景アイテムとして扱っても問題ありませんか?
ありがとう
最初にdrawBackground()関数で背景を描画したQGraphicsSceneがあります。ただし、これにはかなりの数の計算が必要であり、かなり遅いことが判明したため、代わりに多数のアイテムを作成しました。これは予想通りのスピードアップでした。
私の質問:これらのアイテムを背景として扱う方法はありますか?それらを背景アイテムとして扱っても問題ありませんか?
ありがとう
QGraphicsScene に関しては 3 つのレイヤーがあります (Qt のドキュメントを参照)。
アイテムレイヤー。QGraphicsScene は、仮想関数 drawItems() を呼び出すことにより、このレイヤーにあるすべてのアイテムをレンダリングします。アイテム レイヤーは、背景レイヤーの後、前景レイヤーの前に描画されます。
背景レイヤー。QGraphicsScene は、仮想関数 drawBackground() を呼び出して、このレイヤーにシーンの背景をレンダリングします。背景レイヤーはすべてのレイヤーの最初に描画されます。
前景レイヤー。QGraphicsScene は、仮想関数 drawForeground() を呼び出すことにより、このレイヤーでシーンの前景をレンダリングします。前景レイヤーは、すべてのレイヤーの最後に描画されます。
したがって、アイテムを背景レイヤーに配置する合法的な方法はありません。ただし、 QGraphicsItem Sorting を使用して、一部のアイテムを他のアイテムの背後に配置し、それらをbackgroundとして表示することができます。