list QML Value Type

eine Liste von QML-Objekten. Mehr...

Detaillierte 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 Typ value speichern.

Bei der Integration mit C++ ist zu beachten, dass jeder QQmlListProperty Wert, der von C++ an QML übergeben wird, automatisch in einen list Wert umgewandelt wird und umgekehrt.

In ähnlicher Weise wird jeder QList<T> eines registrierten Werttyps T automatisch in einen list Wert umgewandelt und umgekehrt.

Verwendung des Listentyps

Der Typ Item verfügt beispielsweise über die Eigenschaft states list-type, 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 der states Liste in der Reihenfolge hinzugefügt, in der sie definiert sind.

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 auch Ihre eigenen Listeneigenschaften in QML deklarieren:

import QtQml

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

Listen können ähnlich wie JavaScript-Arrays verwendet werden. Zum Beispiel:

  • Werte werden mit der [] eckigen Klammer-Syntax mit kommagetrennten Werten zugewiesen
  • Die Eigenschaft length gibt die Anzahl der Elemente in der Liste an
  • Der Zugriff auf die Werte in der Liste erfolgt mit der Syntax [index]
  • Sie können push() zum Anhängen von Einträgen verwenden.
  • Sie können die Eigenschaft length der Liste festlegen, um sie abzuschneiden oder zu erweitern.

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

Eine Liste von Wertetypen unterscheidet sich von einem JavaScript-Array in einem weiteren wichtigen Aspekt: Das Erweitern durch Setzen der Länge führt nicht zu undefinierten Einträgen, sondern zu standardmäßig konstruierten Instanzen des Wertetyps.

In ähnlicher Weise führt das Erweitern einer Liste von Objekttypen auf diese Weise zu Nulleinträgen und nicht zu undefinierten Einträgen.

Dieser Wertetyp wird von der QML-Sprache bereitgestellt.

Siehe auch QML-Wertetypen.

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