我想實現一個pixmap的「網格視圖」。這就是我希望UI行爲的方式:你點擊一個按鈕,它顯示一個帶有QGraphicsScene的QGraphicsView(完成),然後我想在網格視圖中顯示所有的QPixmaps。我實際上並不想看到一個網格,我只想組織10像素(pixmaps)公關像素圖。行,然後在每個pixmap之間插入一個10px的空格。 (尚未完成)。這將如何實施? 編輯:這裏是我到目前爲止(產生在第二註釋中所描述的結果)
QGraphics 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 :)
我已經嘗試繪製網格。但我不能,因爲我每次嘗試它都只會在第一個像素圖之前顯示10px的距離。之後,他們全都定位在彼此之後:) – Benjamin
然後發佈您的代碼,以便人們可以看到它是如何修復的。 – Mat
完成。看看帖子:) – Benjamin