我想实现像素图的“网格视图”。这就是我希望 UI 的行为方式:单击一个按钮,它会显示一个 QGraphicsView 和一个 QGraphicsScene(完成),然后我想在网格视图中显示我的所有 QPixmap。我实际上不想看到一个网格,我只想组织像素图,如 10 列(像素图)公关。行,然后在每个像素图之间有一个 10 像素的空白。(尚未完成)。这将如何实施?编辑:这是我到目前为止所做的(产生第二条评论中描述的结果)
public SpriteScene() {
super(0, 0, 800, 500);
QPixmap[] sprites = GUI.getWInterface().sprites;
List<QPixmap> l = Arrays.asList(sprites);
Iterator<QPixmap> i = l.iterator();
int rows = 10 / sprites.length;
boolean isDone = false;
for(int y = 0; y < rows; y++) {
for(int x = 0; x < 10; x++) {
if(i.hasNext()) {
QGraphicsPixmapItem pixmap = addPixmap(i.next());
pixmap.setPos(x * 64 + 10 , y * 64 + 10);
} else {
isDone = true;
break;
}
}
if(isDone) {
break;
}
}
}
SpriteScene 扩展了 QGraphicsScene 并被添加到 QGraphicsView 中,如下所示:
spriteView = new QGraphicsView(new SpriteScene(), this);
spriteView.setGeometry(0, 35, 850, 550);
spriteView.setAlignment(new Qt.AlignmentFlag[]{Qt.AlignmentFlag.AlignLeft, Qt.AlignmentFlag.AlignTop});
spriteView.hide();
哦,顺便说一下,每个像素图都是 64x64px :)