Когда вы говорите, что вам нужно получить короля, как вы делаете разницу в своей программе между белым королем и черным?
Если вам нужна пешка, откуда вы знаете, какая? Кто-нибудь ? Первый, который вы можете найти в ваших товарах?
Я не особо задумывался об этом, но, возможно, вы можете использовать QMap. Ключом будет перечисление различных частей, а значением будет указатель на соответствующий QGraphicsItem
. Как то так:
enum Piece_e {
KING,
QUEEN,
ROOK1,
ROOK2,
...
PAWN1,
PAWN2,
...
};
QMap<Piece_e, QGraphicsPixmapItem*> WhitePiecesItems;
QMap<Piece_e, QGraphicsPixmapItem*> BlackPiecesItems;
Когда вы создаете свою сцену и создаете свои экземпляры, вы заполняете карту:
...
WhitePiecesItem[KING] = new QGraphicsPixmapItem(QPixmap("whiteking_pic"));
WhitePiecesItem[PAWN1] = new QGraphicsPixmapItem(QPixmap("whitepawn_pic"));
...
BlackPiecesItem[QUEEN] = new QGraphicsPixmapItem(QPixmap("whitequeen_pic"));
BlackPiecesItem[PAWN1] = new QGraphicsPixmapItem(QPixmap("whitepawn_pic"));
...
Когда вам нужно найти объект, соответствующий белому королю, вы можете сделать что-то вроде этого:
QGraphicsPixmapItem* pItem = WhitePiecesItem[KING];