Qt QGraphicsView如何在中心添加背景图片?

4

我的QGraphicsView项目比其背景图像大得多,但我希望该背景图像仅绘制一次。现在整个视图中填充了该背景图像,因为有足够的空间。

那么,如何强制该背景图像仅绘制一次并位于视图中心?

以下是我目前正在使用的代码:

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

感谢您的回答!
1个回答

2
QGraphicsView 在函数 drawBackground() 中呈现背景。默认实现会使用背景画刷填充视图矩形,导致您看到的结果。
您可以重写 drawBackground() 以自己想要的方式呈现图像,但这意味着必须对 QGraphicsView 进行子类化。
如果这不是一个选择,那么您可能需要在场景中设置一个 Z 顺序最低的 QGraphicsPixmapItem,并使用您想要的图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接