QQmlListProperty Class
template <typename T> class QQmlListPropertyDie Klasse QQmlListProperty ermöglicht es Anwendungen, listenartige Eigenschaften von QObject-abgeleiteten Klassen in QML darzustellen. Mehr...
Kopfzeile: | #include <QQmlListProperty> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake: | QT += qml |
Öffentliche Typen
Öffentliche Funktionen
QQmlListProperty(QObject *object, QList<T *> *list) | |
QQmlListProperty(QObject *object, void *data, QQmlListProperty<T>::CountFunction count, QQmlListProperty<T>::AtFunction at) | |
QQmlListProperty(QObject *object, void *data, QQmlListProperty<T>::AppendFunction append, QQmlListProperty<T>::CountFunction count, QQmlListProperty<T>::AtFunction at, QQmlListProperty<T>::ClearFunction clear) | |
QQmlListProperty(QObject *object, void *data, QQmlListProperty<T>::AppendFunction append, QQmlListProperty<T>::CountFunction count, QQmlListProperty<T>::AtFunction at, QQmlListProperty<T>::ClearFunction clear, QQmlListProperty<T>::ReplaceFunction replace, QQmlListProperty<T>::RemoveLastFunction removeLast) | |
bool | operator==(const QQmlListProperty<T> &other) const |
Makros
QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_APPEND | |
QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE | |
QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE_IF_NOT_DEFAULT |
Detaillierte Beschreibung
QML hat viele Listeneigenschaften, denen mehr als ein Objektwert zugewiesen werden kann. Die Verwendung einer Listeneigenschaft von QML sieht wie folgt aus:
FruitBasket { fruit: [ Apple {}, Orange{}, Banana{} ] }
Die QQmlListProperty kapselt eine Gruppe von Funktionszeigern, die eine Reihe von Aktionen darstellen, die QML mit der Liste durchführen kann - Hinzufügen von Elementen, Abrufen von Elementen und Löschen der Liste. In der Zukunft können weitere Operationen unterstützt werden. Alle Listeneigenschaften müssen die Append-Operation implementieren, die übrigen sind optional.
Um eine Listeneigenschaft bereitzustellen, muss eine C++-Klasse die Operations-Callbacks implementieren und dann einen entsprechenden QQmlListProperty-Wert aus dem Property-Getter zurückgeben. Listeneigenschaften sollten keinen Setter haben. Im obigen Beispiel sieht die Deklaration Q_PROPERTY() wie folgt aus:
Q_PROPERTY(QQmlListProperty<Fruit> fruit READ fruit)
QML-Listeneigenschaften sind typsicher - in diesem Fall ist Fruit
ein QObject -Typ, von dem Apple
, Orange
und Banana
alle abgeleitet sind.
Siehe auch Kapitel 5: Verwendung von Listeneigentumstypen.
Dokumentation der Mitgliedstypen
[alias]
QQmlListProperty::AppendFunction
Synonym für void (*)(QQmlListProperty<T> *property, T *value)
.
Hängen Sie die value an die Liste property an.
[alias]
QQmlListProperty::AtFunction
Synonym für T *(*)(QQmlListProperty<T> *property, qsizetype index)
.
Gibt das Element an der Position index in der Liste property zurück.
[alias]
QQmlListProperty::ClearFunction
Synonym für void (*)(QQmlListProperty<T> *property)
.
Löschen Sie die Liste property.
[alias]
QQmlListProperty::CountFunction
Synonym für qsizetype (*)(QQmlListProperty<T> *property)
.
Rückgabe der Anzahl der Elemente in der Liste property.
[alias]
QQmlListProperty::RemoveLastFunction
Synonym für void (*)(QQmlListProperty<T> *property)
.
Das letzte Element aus der Liste entfernen property.
[alias]
QQmlListProperty::ReplaceFunction
Synonym für void (*)(QQmlListProperty<T> *property, qsizetype index, T *value)
.
Ersetzt das Element an Position index in der Liste property durch value.
Dokumentation der Mitgliedsfunktionen
QQmlListProperty::QQmlListProperty(QObject *object, QList<T *> *list)
Convenience-Konstruktor zur Erzeugung eines QQmlListProperty-Wertes aus einem bestehenden QList list . Die Referenz list muss so lange gültig sein, wie object existiert. object muss angegeben werden.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, QQmlListProperty<T>::CountFunction count, QQmlListProperty<T>::AtFunction at)
Konstruiert eine schreibgeschützte QQmlListProperty aus einem Satz von Operationsfunktionen count und at. Es kann ein undurchsichtiges data -Handle übergeben werden, auf das von den Operationsfunktionen aus zugegriffen werden kann. Die Listeneigenschaft bleibt gültig, solange object existiert.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, QQmlListProperty<T>::AppendFunction append, QQmlListProperty<T>::CountFunction count, QQmlListProperty<T>::AtFunction at, QQmlListProperty<T>::ClearFunction clear)
Konstruiert eine QQmlListProperty aus einem Satz von Operationsfunktionen append, count, at und clear. Es kann ein undurchsichtiges data -Handle übergeben werden, auf das von den Operationsfunktionen aus zugegriffen werden kann. Die Listeneigenschaft bleibt gültig, solange object existiert.
Null-Zeiger können für jede Funktion übergeben werden. Wenn Null-Zeiger übergeben werden, kann die Liste vom Debugger weder gestaltet noch geändert werden. Es wird empfohlen, gültige Zeiger für alle Funktionen zu übergeben.
Hinweis: Die resultierende QQmlListProperty wird die Methoden removeLast() und replace() unter Verwendung von count, at, clear und append synthetisieren, wenn alle diese Funktionen angegeben werden. Dies ist langsam. Wenn Sie beabsichtigen, die Liste über das Löschen hinaus zu manipulieren, sollten Sie diese Methoden explizit bereitstellen.
QQmlListProperty::QQmlListProperty(QObject *object, void *data, QQmlListProperty<T>::AppendFunction append, QQmlListProperty<T>::CountFunction count, QQmlListProperty<T>::AtFunction at, QQmlListProperty<T>::ClearFunction clear, QQmlListProperty<T>::ReplaceFunction replace, QQmlListProperty<T>::RemoveLastFunction removeLast)
Konstruiert eine QQmlListProperty aus einem Satz von Operationsfunktionen append, count, at, clear, replace und removeLast. Es kann ein undurchsichtiges data -Handle übergeben werden, auf das aus den Operationsfunktionen heraus zugegriffen werden kann. Die Listeneigenschaft bleibt gültig, solange object existiert.
Null-Zeiger können für jede Funktion übergeben werden, was dazu führt, dass die jeweilige Funktion, wenn möglich, mit Hilfe der anderen synthetisiert wird. QQmlListProperty kann synthetisieren
- clear mit count und removeLast
- replace mittels count, at, clear, und append
- replace unter Verwendung von count, at, removeLast, und append
- removeLast unter Verwendung von count, at, clear, und append
wenn diese gegeben sind. Dies ist langsam, aber wenn Ihre Liste nicht von Haus aus schnellere Optionen für diese Primitive bietet, sollten Sie die synthetisierten verwenden.
Wenn eine der Optionen count, at, append und clear weder explizit angegeben noch synthetisiert wird, kann die Liste vom Debugger weder entworfen noch geändert werden. Es wird empfohlen, genügend gültige Zeiger anzugeben, um diese Situation zu vermeiden.
bool QQmlListProperty::operator==(const QQmlListProperty<T> &other) const
Gibt true zurück, wenn diese QQmlListProperty gleich other ist, andernfalls false.
Makro-Dokumentation
QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_APPEND
Dieses Makro definiert das Verhalten der Listeneigenschaften dieser Klasse zu Append. Bei der Zuweisung der Eigenschaft in einem abgeleiteten Typ werden die Werte an die der Basisklasse angehängt. Dies ist das Standardverhalten.
class FruitBasket : QObject { Q_OBJECT QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_APPEND Q_PROPERTY(QQmlListProperty<Fruit> fruit READ fruit) public: // ... QQmlListProperty<Fruit> fruit(); // ... };
Siehe auch QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE_IF_NOT_DEFAULT, QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE, und Definieren von Objekttypen durch QML-Dokumente.
QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE
Dieses Makro definiert das Verhalten der Listeneigenschaften dieser Klasse zu Replace. Bei der Zuweisung der Eigenschaft in einem abgeleiteten Typ ersetzen die Werte die der Basisklasse.
class FruitBasket : QObject { Q_OBJECT QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE Q_PROPERTY(QQmlListProperty<Fruit> fruit READ fruit) public: // ... QQmlListProperty<Fruit> fruit(); // ... };
Siehe auch QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_APPEND, QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE_IF_NOT_DEFAULT, und Definieren von Objekttypen durch QML-Dokumente.
QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE_IF_NOT_DEFAULT
Dieses Makro definiert das Verhalten der Listeneigenschaften dieser Klasse auf ReplaceIfNotDefault. Bei der Zuweisung der Eigenschaft in einem abgeleiteten Typ ersetzen die Werte die der Basisklasse, es sei denn, es handelt sich um die Standardeigenschaft. Im Falle der Standardeigenschaft werden die Werte an die Werte der Basisklasse angehängt.
class FruitBasket : QObject { Q_OBJECT QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE_IF_NOT_DEFAULT Q_PROPERTY(QQmlListProperty<Fruit> fruit READ fruit) public: // ... QQmlListProperty<Fruit> fruit(); // ... };
Siehe auch QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_APPEND, QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_REPLACE, und Definieren von Objekttypen durch QML-Dokumente.
© 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.