このページでは

C

ListElement QML Type

ListModel のデータ項目を定義する

Import Statement: import QtQuick

詳細説明

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

リスト要素は他のQML要素と同様に定義されますが、プロパティの代わりにロールの定義が含まれます。ロールはプロパティ定義と同じ構文で、データへのアクセス方法やデータそのものを定義します。

ロールに使用される名前は小文字で始まり、与えられたモデル内のすべての要素に共通でなければなりません。値は単純な定数でなければならず、文字列(オプションでqsTrで包まれる)、ブーリアン値(true、false)、数値、列挙値(AlignText.AlignHCenterなど)のいずれかでなければなりません。

ロールの参照

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

注意: 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.namemodelData.cost を参照して、各 ListElement の name と cost を取得します:

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 }
    }
}

ListModelQt Quick モデルの Ultralite の違いも参照してください

特定の Qt ライセンスの下で利用可能です。
詳細を見る。