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の値型

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.