我正在制作一个纸牌游戏,它有 4 个卡槽,每个卡槽容量为 5。我ListView
用来代表每个插槽。让我先解释代码,然后再解释我的问题。
class ClientCard : public QObject
{
Q_OBJECT
int code; // card code
int location; // zone in which card is located
...
ClientCard* equipTarget;
QSet<ClientCard*> equipped;
...
};
class ClientCardModel : public QAbstractListModel
{
enum CardRoles {
CodeRole = Qt::UserRole + 1,
LocationRole
}
...
QList<ClientCard*> m_list;
};
ClientCardModel
具有将代码和其他成员传输到 QML的ClientCard
for和角色列表。ListView
让我ListView
用一个区域(如 zone1、zone2 等)来表示每个。在游戏中,一张卡可以与其他区域的其他卡一起装备。卡上装备的卡存放在 中QSet<> equipped
,卡上装备的卡存放在 中equipTarget
。当将鼠标悬停在区域中的卡片上时,应使用图像突出显示其他区域中装备它的卡片,直到鼠标停留在卡片上。
任何想法都值得赞赏。