首页 > 解决方案 > 集中游戏的基本 QML 布局

问题描述

我正在尝试通过将记忆游戏创建为多人应用程序来提高我的 QML 技能。(也称为浓度)。我已经创建了 C++ 类,例如 Player、Game 和 Card。Game 类包含一个卡片向量的向量 (QVector< QVector< Card*>> m_field;),它表示所有卡片的字段。Game 类使用“qmlRegisterSingletonType(..)”作为单例类型注册到 QML 引擎。

现在我正在创建 UI,使用中继器,如下面的代码所示。有没有更方便的方法来创建这样的 UI?我可以以某种方式将 c++ 类 Card 的实例附加到 Card 的 QML 实例吗?

import QtQuick 2.11
import QtQuick.Window 2.11
import de.memory.game_instance 1.0

Window {
    id: root
    visible: true
    width: 450
    height: 700
    title: qsTr("Memory Game")

    Column {
        id: col
        Repeater {
            id: rows
            model: Constants.GAME_FIELD_HEIGHT
            delegate: Row {
                property int row_idx: modelData
                Repeater {
                    id: cells
                    model: Constants.GAME_FIELD_WIDTH
                    delegate: Card {
                        height: root.height / Constants.GAME_FIELD_HEIGHT
                        width: root.width / Constants.GAME_FIELD_WIDTH
                        img_source: Game.getImageAt(row_idx, modelData);
                        img_shown: false
                    }
                }
            }
        }
    }
}

标签: c++qmlqt-quick

解决方案


推荐阅读