Q场景背景画笔偏移

QGraphicsScene background brush offset?

本文关键字:画笔 背景      更新时间:2023-10-16

我正在创建一个QGraphicsView,它显示了一个QGraphicsScene。

我将场景的背景设置为 QImage 位图,使用:

scene()->setBackgroundBrush(myQImage);

我希望此图像相对于偏移量平铺,因为我可以这样做:

painter.drawTiledPixmap(this->rect(), QPixmap::fromImage(myQImage), bgOffset);

有没有办法做到这一点,或者我应该忽略QGraphicsScene的背景画笔能力,用画家来做?不过,这让我失去了缓存可能是一个大背景的东西,并且会弄乱滚动条,所以我宁愿不这样做。

[编辑,上下文:我有一个本质上是基于精灵的角色设计师(或头像设计师)。我希望人们能够显示他们选择的平铺背景,但我不能限制背景的尺寸,并且背景的中心磁贴必须相对于他们正在设计的精灵以用户定义的偏移量显示。这个背景可以是任何东西,从简单的网格背景(用于像素对齐),到游戏内地图的屏幕截图(角色必须能够对齐才能站在他们想要的地图正方形的中心),到另一个角色的头像的图片,供他们以像素完美的方式进行比较或对齐,等等......]

您可以编辑图像本身以模拟背景偏移。您需要重新调整行和列,以便原点位于 (0, 0)。您可以通过将图像切成 4 块并以不同的顺序将它们连接在一起来做到这一点。