pixmapsの「グリッドビュー」を実装したいと思います。これは私がUIを動作させる方法です:ボタンをクリックすると、QGraphicsScene(完了)を含むQGraphicsViewが表示され、次にすべてのQPixmapsをグリッドビューに表示したいと思います。私は実際にグリッドを見たいとは思っていません。私はちょうど10列(pixmaps)のようなピクスマップを整理したいと思います。各ピクスマップの間に10ピクスの空白があります。 (まだ完成してない)。これはどのように実装されますか? 編集:ここに私はこれまで何をやったかだ(第2のコメントで説明した結果を生成する)
QGraphicsSceneのpixmapsグリッドビュー
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です:)
グリッドを描画しようとしました。しかし、私が試みるたびに最初のpixmapの前に10pxのギャップしか表示されないので、私はできません。その後、それらはすべて互いの直後に配置されています:) – Benjamin
コードを投稿して、人々がどのように修正できるかを確認できるようにします。 – Mat
完了。投稿を見てください:) – Benjamin