4

私のQGraphicsViewアイテムは背景画像よりもかなり大きいのですが、その背景画像を 1 回だけ描画したいと考えています。これで、スペースの数だけ背景画像で全体が埋め尽くされます。

では、その背景画像を強制的にビューの中央に 1 回だけ描画するにはどうすればよいでしょうか?

現在使用しているコードは次のとおりです。

QPalette palette;
palette.setBrush(this->backgroundRole(),QBrush(*myImage));
this->setPalette(palette);

回答ありがとうございます。

4

1 に答える 1

2

QGraphicsView、関数で背景をレンダリングしますdrawBackground()。これのデフォルトの実装は、あなたが見ている結果を与える背景ブラシを使用してビューの長方形を塗りつぶします。

必要に応じて画像をレンダリングするようにオーバーライドできますdrawBackground()が、それはサブクラス化を意味しQGraphicsViewます。

これができない場合は、必要QGraphicsPixmapItemな画像を含むシーンで最も低い Z オーダーに a を設定できます。

于 2010-11-10T01:44:31.540 に答える