【问题标题】:Draw 32x32 Tiled Images in QT在 QT 中绘制 32x32 平铺图像
【发布时间】:2013-06-19 00:44:52
【问题描述】:

我很想知道如何将图像拆分为 32x32(或实际上任何大小)的可选图块并在 Qt 中显示它们? 平铺地图编辑器(屏幕右下角的面板)就是一个例子。我正在考虑尝试在 Qt 中创建一个 2D 级别的编辑器,但我对 Qt 还很陌生,还没有找到这个特定问题的答案。或者我只是不知道如何表达这个问题。

【问题讨论】:

标签: qt map tile


【解决方案1】:

将主图像添加到 QPixmap,然后为每个要创建的图块调用 QPixmap 的复制函数。这使您可以指定要复制的区域并返回带有该区域的新 QPixmap。

对于您使用副本创建的每个 QPixmap tile,使用它来创建 QGraphicsPixmapItem,然后将其添加到 QGraphicsScene。

所以,你会做这样的事情:-

// assuming your source image is in your resources qrc file
QPixmap srcImage(":/images/srcImage.png");

//in a loop for x and a 2nd loop for y

// copy a section of the source image
QPixmap tileImg = srcImage.copy(x, y, w, h);

// create the tile
QGraphicsPixmapItem* pTile = new QGraphicsPixmapItem(tileImg);

// add the pTile to the scene.

使用 QGraphicsPixmapItem 将为您提供可以在场景中定位、选择和移动的平铺对象。

【讨论】:

  • 感谢 Merlin069。我会用这个方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 2017-02-10
  • 2015-07-12
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多