このページでは

C

ListElement QML Type

ListModel 内のデータ項目を定義します。詳細...

Import Statement: import QtQuick

詳細な説明

リスト要素はListModel 定義内で定義され、ListView またはRepeater アイテムを使用して表示されるリスト内の項目を表します。

リスト要素は、プロパティの代わりに一連のロール定義を含む点を除き、他の QML 要素と同様に定義されます。ロールは、プロパティ定義と同じ構文を使用して、データへのアクセス方法を定義し、データ自体を含みます。

ロールに使用される名前は小文字で始まり、特定のモデル内のすべての要素で共通でなければなりません。値は単純な定数でなければなりません。具体的には、文字列(必要に応じてqsTr で囲む)、ブール値(true、false)、数値、または列挙値(AlignText.AlignHCenter など)です。

ロールの参照

ロール名は、デリゲートがリスト要素からデータを取得するために使用されます。各ロール名は、デリゲートのスコープ内でmodelData プロパティを介してアクセス可能であり、現在の要素内の対応するロールを指します。たとえば、modelData.cost は、cost ロールに関する現在のデータを指します。

注: Qt Quick Ultralite では、モデルロールへの修飾子なしのアクセスは許可されていません。また、Qt Quick ではロールへのアクセスに `model ` を使用するのに対し、Qt Quick Ultralite では `modelData` を使用します。モデルのQt Quick Ultralite 間の違いについては、こちらを参照してください。

使用例

以下のモデルは、一連のリスト要素を定義しています。各要素には、「name」および「cost」というロールと、それに関連付けられた値が含まれています。

ListModel {
    id: fruitModel

    ListElement {
        name: "Apple"
        cost: "2.45"
    }
    ListElement {
        name: "Orange"
        cost: "3.25"
    }
    ListElement {
        name: "Banana"
        cost: "1.95"
    }
}

デリゲートは、modelData.name およびmodelData.cost を参照することで、各 ListElement の名前とコストを取得します:

ListView {
    anchors.fill: parent
    model: fruitModel
    delegate: Row {
        width: parent.width / fruitModel.count
        height: parent.height / fruitModel.count
        Text { text: "Fruit: " + model.name }
        Text { text: " Cost: $" + model.cost }
    }
}

関連項目: ListModel およびQt Quick モデルにおけるUltraliteの違い

特定のQtライセンスの下で利用可能です。
詳細はこちら。