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.