これは、チェス盤を生成するための私の簡単なコードです。最初に、図の場所のように機能する四角形が追加されます。次に、図のpngを含むQPixmapが重ねて表示されます。一部の図はその四角形の下にあるため、表示されません。rect (scene->addRect...) を追加しているコメント行に入れると、うまく見えます。なんで?アイテムを表示する順番に描いています。
for (int column = 0; column < 8; column++) {
if ((row + column) % 2) {
scene->addRect(row * 50, column * 50, 50, 50, greyPen, greyBrush);
}
else {
scene->addRect(row * 50, column * 50, 50, 50, whitePen, whiteBrush);
}
int figure = chessboard->getFigureOnPos(row, column);
if (figure == Dama::Chessboard::DAMA_BLACK) {
QGraphicsItem * item = scene->addPixmap(dama_black);
item->setPos(column * 50, row * 50);
}
else if (figure == Dama::Chessboard::DAMA_WHITE) {
QGraphicsItem * item = scene->addPixmap(dama_white);
item->setPos(column * 50, row * 50);
}
else if (figure == Dama::Chessboard::PANAK_BLACK) {
QGraphicsItem * item = scene->addPixmap(panak_black);
item->setPos(column * 50, row * 50);
}
else if (figure == Dama::Chessboard::PANAK_WHITE) {
QGraphicsItem * item = scene->addPixmap(QPixmap(panak_white));
item->setPos(column * 50, row * 50);
}
}