我很想知道如何将图像拆分为 32x32(或实际上任何大小)的可选图块并在Qt中显示它们?一个例子是平铺地图编辑器(屏幕右下角的面板)。我正在考虑尝试在 Qt 中创建一个 2D 级别的编辑器,但我对Qt 还很陌生,还没有找到这个特定问题的答案。或者也许我只是不知道如何表达这个问题。
问问题
1256 次
1 回答
2
将主图像添加到 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 将为您提供可以在场景中定位、选择和移动的平铺对象。
于 2013-06-19T08:32:07.623 回答