QGraphicsScene 背景画笔偏移?
QGraphicsScene background brush offset?
我正在创建一个显示 QGraphicsScene 的 QGraphicsView。
我将场景的背景设置为 QImage 位图,其中:
scene()->setBackgroundBrush(myQImage);
我希望此图像相对于偏移量平铺,我可以这样做:
painter.drawTiledPixmap(this->rect(), QPixmap::fromImage(myQImage), bgOffset);
有没有办法做到这一点,或者我应该忽略 QGraphicsScene 的背景刷功能,而用画家来做?不过,这让我无法缓存可能是大背景的内容,并且会严重扰乱滚动条,所以我宁愿不这样做。
[编辑,上下文:我有一个本质上是基于精灵的角色设计师(或头像设计师)。我希望人们能够显示他们选择的拼贴背景,但我不能限制背景的尺寸,背景的中央拼贴必须以用户定义的相对于他们正在设计的 sprite 的偏移量显示。这个背景可以是任何东西,从简单的网格背景(用于像素对齐)到游戏内地图的屏幕截图(角色必须对齐才能站在他们想要的地图正方形的中心),再到另一个角色的头像图片供他们使用以像素完美的方式比较或对齐,等等...]
您可以编辑图像本身以模拟背景偏移。您需要对行和列进行排序,以便原点位于 (0, 0)。您可以通过将图像切割成 4 块并以不同的顺序将它们连接在一起来做到这一点。
我正在创建一个显示 QGraphicsScene 的 QGraphicsView。
我将场景的背景设置为 QImage 位图,其中:
scene()->setBackgroundBrush(myQImage);
我希望此图像相对于偏移量平铺,我可以这样做:
painter.drawTiledPixmap(this->rect(), QPixmap::fromImage(myQImage), bgOffset);
有没有办法做到这一点,或者我应该忽略 QGraphicsScene 的背景刷功能,而用画家来做?不过,这让我无法缓存可能是大背景的内容,并且会严重扰乱滚动条,所以我宁愿不这样做。
[编辑,上下文:我有一个本质上是基于精灵的角色设计师(或头像设计师)。我希望人们能够显示他们选择的拼贴背景,但我不能限制背景的尺寸,背景的中央拼贴必须以用户定义的相对于他们正在设计的 sprite 的偏移量显示。这个背景可以是任何东西,从简单的网格背景(用于像素对齐)到游戏内地图的屏幕截图(角色必须对齐才能站在他们想要的地图正方形的中心),再到另一个角色的头像图片供他们使用以像素完美的方式比较或对齐,等等...]
您可以编辑图像本身以模拟背景偏移。您需要对行和列进行排序,以便原点位于 (0, 0)。您可以通过将图像切割成 4 块并以不同的顺序将它们连接在一起来做到这一点。