qt-在qgraphicscene中如何捕获特定项

qt-在qgraphicscene中如何捕获特定项,qt,qgraphicsscene,qgraphicspixmapitem,Qt,Qgraphicsscene,Qgraphicspixmapitem,我的qgraphicscene中有很多东西。情况是我正在创建一个棋盘,并且正在使用图形场景。因此,qgraphicscene有很多qgraphicspixmapitem。现在我怎么才能得到国王 更新: 在这个qgraphicscene中,我添加了QGraphicsPixmapItems,它们只不过是硬币(棋盘、国王、王后、士兵等)。现在,如果我想移动一个特定的硬币,比如说国王,那么我怎么能得到它呢。有一些方法,比如使用迭代器。但是有没有办法通过名字找到一个特定的QGraphicsPixmapIt

我的
qgraphicscene
中有很多东西。情况是我正在创建一个棋盘,并且正在使用图形场景。因此,
qgraphicscene
有很多
qgraphicspixmapitem
。现在我怎么才能得到国王

更新:
在这个
qgraphicscene
中,我添加了
QGraphicsPixmapItems
,它们只不过是硬币(棋盘、国王、王后、士兵等)。现在,如果我想移动一个特定的硬币,比如说国王,那么我怎么能得到它呢。有一些方法,比如使用迭代器。但是有没有办法通过名字找到一个特定的
QGraphicsPixmapItem

当你说你需要得到国王时,你如何在你的程序中区分白人国王和黑人国王

如果你需要一个当铺,你怎么知道是哪一个?任何人你能在物品中找到的第一个

我没怎么想过,但也许你能做的就是使用QMap。键是不同部分的枚举,值是指向相关
QGraphicsItem
的指针。大概是这样的:

enum Piece_e {
    KING,
    QUEEN,
    ROOK1,
    ROOK2,
    ...
    PAWN1,
    PAWN2,
    ...
};

QMap<Piece_e, QGraphicsPixmapItem*> WhitePiecesItems;
QMap<Piece_e, QGraphicsPixmapItem*> BlackPiecesItems;
QGraphicsPixmapItem* pItem = WhitePiecesItem[KING];
当您需要查找与白王对应的对象时,可以执行以下操作:

enum Piece_e {
    KING,
    QUEEN,
    ROOK1,
    ROOK2,
    ...
    PAWN1,
    PAWN2,
    ...
};

QMap<Piece_e, QGraphicsPixmapItem*> WhitePiecesItems;
QMap<Piece_e, QGraphicsPixmapItem*> BlackPiecesItems;
QGraphicsPixmapItem* pItem = WhitePiecesItem[KING];

你说的“得到国王”是什么意思?请以定义和编程的方式进行。硬币?你指的是碎片吗?谢谢你的回答。我保留了两个向量,而不是地图。