0

それぞれ 5 枚のカードが 4 スロットあるカード ゲームを作成しています。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 に転送するためのClientCardforと rolesのリストがあります。ListViewそれぞれListViewをゾーン (zone1、zone2 など) で表します。ゲームでは、カードは他のゾーンの他のカードを装備できます。カードに装備されているカードは にQSet<> equipped、カードを装備しているカードは に格納されequipTargetます。ゾーン内のカードにカーソルを合わせると、マウスがカード上に留まるまで、他のゾーンでそれを装備しているカードが画像を使用して強調表示されます。

どんなアイデアでも大歓迎です。

4

1 に答える 1

0

それがあなたの要件に合っているかどうか教えてください。

返信を確認しました。起きたばかりです。申し訳ありません。:-)

で覆われたビューでデリゲートを持つことができますMouseAreadelegateカードがホバーされると、装備されたカードの状態 (ホバーされている/ホバーされていない) を反映する内からアクセス可能な内部パラメータを設定できます。デリゲート自体がそのパラメーターの変更に反応するため、ホバーされたカードを装備している他の各カードも同様に反応します。

他のテーマでは、ホバリングはエクスポートされたパラメーターを変更する必要があり (これはおそらく a によって実現できますMouseArea)、デリゲートはそのパラメーターの変更に反応して必要なものを表示するように設計する必要があります。

于 2015-06-27T09:43:27.227 に答える