Qt QGraphics在中心查看一张背景图片

Posted

技术标签:

【中文标题】Qt QGraphics在中心查看一张背景图片【英文标题】:Qt QGraphicsView one background image on center 【发布时间】:2010-11-09 23:31:26 【问题描述】:

我的QGraphicsView 项目比它的背景图像大很多,但我希望该背景图像只绘制一次。现在整个东西都被该背景图像填充了多少次。

那么,如何强制将背景图像仅绘制一次到视图的中心?

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

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

感谢您的回答!

【问题讨论】:

【参考方案1】:

QGraphicsView 在函数drawBackground() 中渲染背景。这个的默认实现使用背景画笔填充视图矩形,给出您所看到的结果。

您可以覆盖 drawBackground() 以按照您想要的方式渲染图像,但这意味着子类化 QGraphicsView

如果这不是一个选项,您可能可以在场景中的最低 Z 顺序设置一个QGraphicsPixmapItem,并使用您想要的图像。

【讨论】:

以上是关于Qt QGraphics在中心查看一张背景图片的主要内容,如果未能解决你的问题,请参考以下文章

Qt学习_QGraphics进阶学习笔记

Qt学习_QGraphics进阶学习笔记

Qt中QGraphics类坐标映射关系详解(有图有真相,实例讲解)

QT用QGraphics在一条线上画一个椭圆或三角形

✎Qt-doc—QGraphics图形视图框架&坐标系统

✎Qt-doc—QGraphics图形视图框架&坐标系统