list QML Value Type

QMLオブジェクトのリスト。詳細...

詳細な説明

list 型は QML オブジェクトや値のリストを表します。

list 型のプロパティはデフォルトでは空です。

list には QML オブジェクトやvalue型の値を格納することができます。

C++と統合する場合、C++からQMLに渡された QQmlListProperty の値は自動的にlist の値に変換されることに注意してください。

同様にT に登録された値型のQList<T> は自動的にlist に変換されます。

リスト型の使用

例えば、Item 型には、states list-type プロパティがあり、以下のように割り当てて使用することができます:

import QtQuick

Item {
    width: 100; height: 100

    states: [
        State { name: "activated" },
        State { name: "deactivated" }
    ]

    Component.onCompleted: {
        console.log("Name of first state:", states[0].name)
        for (var i = 0; i < states.length; i++)
            console.log("state", i, states[i].name)
    }
}

定義されたState オブジェクトは、定義された順にstates リストに追加されます。

リストにオブジェクトが1つしか含まれていない場合、角括弧は省略できます:

import QtQuick

Item {
    width: 100; height: 100
    states: State { name: "activated" }
}

QMLでは独自のリスト・プロパティを宣言することもできます:

import QtQml

QtObject {
    property list<int> intList: [1, 2, 3, 4]
    property list<QtObject> objectList
}

リストはJavaScriptの配列のように使うことができます。例えば、次のようになります:

  • 値は、[] の角括弧構文を使って、カンマ区切りで代入します。
  • length プロパティはリスト内の項目数を指定します。
  • リスト内の値には、[index] 構文を使用してアクセスします。
  • push() を使用して、項目を追加できます。
  • リストのlength プロパティを設定して、リストを切り詰めたり拡張したりできます。

ただし、現在範囲外のインデックスに代入して自動的にリストを拡張することはできません。さらに、null の値をオブジェクトのリストに挿入すると、その値は基礎となるQQmlListPropertynullptr エントリに変換されます。

値型のリストは、JavaScriptの配列とは異なる重要な点があります:その長さを設定することによってそれを成長させることは、未定義のエントリを生成するのではなく、値型のデフォルトで構成されたインスタンスを生成します。

同様に、この方法でオブジェクト型のリストを成長させると、未定義のエントリではなく、NULLのエントリが生成されます。

この値型はQML言語で提供されています。

QMLの値型も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。