Auf dieser Seite

list QML Value Type

eine Liste von QML-Objekten. Mehr...

Ausführliche Beschreibung

Der Typ „ list “ bezieht sich auf eine Liste von QML-Objekten oder Werten.

Eigenschaften vom Typ „ list “ sind standardmäßig leer.

Ein ` list ` kann QML-Objekte oder Werte vom Werttyp speichern.

Bei der Integration mit C++ ist zu beachten, dass jeder aus C++ an QML übergebene „ QQmlListProperty “-Wert automatisch in einen „ list “-Wert konvertiert wird und umgekehrt.

Ebenso wird jede „ QList<T> “ eines registrierten Werttyps „ T “ automatisch in einen Wert vom Typ „ list “ konvertiert und umgekehrt.

Verwendung des Typs „list“

Beispielsweise verfügt der Typ „ Item “ über eine Eigenschaft vom Listentyp „ states “, die wie folgt zugewiesen und verwendet werden kann:

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

Die definierten „ State “-Objekte werden in der Reihenfolge ihrer Definition zur Liste „ states “ hinzugefügt.

Wenn die Liste nur ein Objekt enthält, können die eckigen Klammern weggelassen werden:

import QtQuick

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

Sie können in QML auch eigene Listen-Eigenschaften deklarieren:

import QtQml

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

Listen lassen sich ähnlich wie JavaScript-Arrays verwenden. Beispiel:

  • Werte werden mithilfe der „ [] “-Syntax in eckigen Klammern mit durch Kommas getrennten Werten zugewiesen
  • Die Eigenschaft „ length “ gibt die Anzahl der Elemente in der Liste an
  • Der Zugriff auf Werte in der Liste erfolgt über die Syntax „ [index] “
  • Mit ` push() ` können Sie Einträge anhängen
  • Sie können die Eigenschaft „ length “ der Liste festlegen, um sie zu kürzen oder zu erweitern.

Sie können die Liste jedoch nicht automatisch erweitern, indem Sie einem Index einen Wert zuweisen, der derzeit außerhalb des Bereichs liegt. Wenn Sie zudem ` null `-Werte in eine Liste von Objekten einfügen, werden diese im zugrunde liegenden ` QQmlListProperty` in ` nullptr `-Einträge umgewandelt.

Eine Liste von Werttypen unterscheidet sich in einem weiteren wichtigen Aspekt von einem JavaScript-Array: Das Vergrößern durch Festlegen ihrer Länge erzeugt keine undefinierten Einträge, sondern standardmäßig konstruierte Instanzen des Werttyps.

Ebenso führt das Vergrößern einer Liste von Objekttypen auf diese Weise zu „null“-Einträgen anstelle von „undefined“-Einträgen.

Dieser Werttyp wird von der Sprache QML bereitgestellt.

Siehe auch QML-Werttypen.

© 2026 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.