QQmlListReference Class
Die Klasse „QQmlListReference“ ermöglicht die Bearbeitung der Eigenschaften von „ QQmlListProperty “. Mehr...
| Header: | #include <QQmlListReference> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
Öffentliche Funktionen
| QQmlListReference() | |
(since 6.1) | QQmlListReference(const QVariant &variant) |
| QQmlListReference(QObject *object, const char *property) | |
| bool | append(QObject *object) const |
| QObject * | at(qsizetype index) const |
| bool | canAppend() const |
| bool | canAt() const |
| bool | canClear() const |
| bool | canCount() const |
| bool | canRemoveLast() const |
| bool | canReplace() const |
| bool | clear() const |
| qsizetype | count() const |
| bool | isManipulable() const |
| bool | isReadable() const |
| bool | isValid() const |
| const QMetaObject * | listElementType() const |
| QObject * | object() const |
| bool | removeLast() const |
| bool | replace(qsizetype index, QObject *object) const |
(since 6.2) qsizetype | size() const |
| bool | operator==(const QQmlListReference &other) const |
Ausführliche Beschreibung
Mit QQmlListReference können C++-Programme auf einfache und typsichere Weise Werte aus einer QML-Listen-Eigenschaft lesen und dieser Werte zuweisen. Der Hauptvorteil gegenüber der direkten Verwendung von ` QQmlListProperty ` liegt in der Typausblendung: `QQmlListReference` ist kein Template, kann aber für `QQmlListProperties` beliebigen Typs verwendet werden. Darüber hinaus überwacht es das Eigentümerobjekt auf Löschung und verhindert den Zugriff auf die ` QQmlListProperty `, sobald deren Eigentümer gelöscht wurde.
Sie können eine `QQmlListReference` entweder aus einem Objekt und einem Eigenschaftsnamen oder aus einer ` QVariant` erstellen. Diese beiden Möglichkeiten sind gleichwertig:
QQmlListReference ref1(object, "children");
const QVariant var = object->property("children");
QQmlListReference ref2(var);Nicht alle `QQmlListReferences` unterstützen alle Operationen. Methoden wie ` canAppend()`, ` canAt()`, ` canClear()` und ` canCount()` ermöglichen es Programmen, abzufragen, ob eine Operation für eine bestimmte Eigenschaft unterstützt wird. Die Verfügbarkeit der Methoden hängt von den Methoden ab, die von der zugrunde liegenden ` QQmlListProperty` implementiert werden. Beim Erstellen einer ` QQmlListProperty ` durch manuelles Übergeben der Zugriffsfunktionen können Sie den Zugriff auf die Liste einschränken, indem Sie bei einigen von ihnen `nullptr` übergeben. `QQmlListReference` erkennt diese und meldet sie als nicht verfügbar.
QQmlListReferences sind typsicher. Nur ` QObjects`, die von der richtigen Basisklasse abgeleitet sind, können der Liste hinzugefügt werden. Mit der Methode ` listElementType()` lässt sich die ` QMetaObject ` des Typs ` QObject ` abfragen, der hinzugefügt werden kann. Der Versuch, Objekte eines falschen Typs zu einer Listen-Eigenschaft hinzuzufügen, schlägt fehl.
Wie bei anderen Listen liegt es auch hier in der Verantwortung des Aufrufenden, beim Zugriff auf ein Listenelement über den Index sicherzustellen, dass kein Element außerhalb des zulässigen Bereichs angefordert wird. Verwenden Sie zu diesem Zweck die Methode „ count()“, bevor Sie „ at()“ aufrufen.
Dokumentation der Member-Funktionen
QQmlListReference::QQmlListReference()
Erzeugt eine ungültige Instanz.
[explicit, since 6.1] QQmlListReference::QQmlListReference(const QVariant &variant)
Erstellt eine `QQmlListReference` aus einer ` QVariant ` ` variant `, die eine ` QQmlListProperty` enthält. Wenn ` variant ` keine Listen-Eigenschaft enthält, wird eine ungültige `QQmlListReference` erstellt. Wird das Objekt, das die Listen-Eigenschaft besitzt, nach der Erstellung der Referenz zerstört, wird diese automatisch ungültig. Das heißt, es ist unbedenklich, `QQmlListReference`-Instanzen auch nach dem Löschen des Objekts beizubehalten.
Diese Funktion wurde in Qt 6.1 eingeführt.
QQmlListReference::QQmlListReference(QObject *object, const char *property)
Erstellt eine `QQmlListReference` für ` property` von ` object`. Ist ` property ` keine Listen-Eigenschaft, wird eine ungültige `QQmlListReference` erstellt. Wird ` object ` nach der Erstellung der Referenz zerstört, wird diese automatisch ungültig. Das heißt, es ist unbedenklich, `QQmlListReference`-Instanzen auch nach dem Löschen von ` object ` beizubehalten.
bool QQmlListReference::append(QObject *object) const
Fügt „ object “ zur Liste hinzu. Gibt „true“ zurück, wenn der Vorgang erfolgreich war, andernfalls „false“.
Siehe auch canAppend().
QObject *QQmlListReference::at(qsizetype index) const
Gibt das Listenelement unter index zurück oder nullptr, falls die Operation fehlgeschlagen ist.
Siehe auch canAt().
bool QQmlListReference::canAppend() const
Gibt „true“ zurück, wenn an die Liste-Eigenschaft angehängt werden kann, andernfalls „false“. Gibt „false“ zurück, wenn die Referenz ungültig ist.
Siehe auch ` append()`.
bool QQmlListReference::canAt() const
Gibt „true“ zurück, wenn die Listeigenschaft anhand eines Index abgefragt werden kann, andernfalls „false“. Gibt „false“ zurück, wenn die Referenz ungültig ist.
Siehe auch ` at()`.
bool QQmlListReference::canClear() const
Gibt „true“ zurück, wenn die Liste geleert werden kann, andernfalls „false“. Gibt „false“ zurück, wenn die Referenz ungültig ist.
Siehe auch ` clear()`.
bool QQmlListReference::canCount() const
Gibt „true“ zurück, wenn die Anzahl der Elemente der Liste abgefragt werden kann, andernfalls „false“. Gibt „false“ zurück, wenn die Referenz ungültig ist.
Siehe auch ` count()`.
bool QQmlListReference::canRemoveLast() const
Gibt „true“ zurück, wenn das letzte Element aus der Listen-Eigenschaft entfernt werden kann, andernfalls „false“. Gibt „false“ zurück, wenn die Referenz ungültig ist.
Siehe auch „ removeLast()“.
bool QQmlListReference::canReplace() const
Gibt „true“ zurück, wenn Elemente in der Eigenschaft „list“ ersetzt werden können, andernfalls „false“. Gibt „false“ zurück, wenn die Referenz ungültig ist.
Siehe auch ` replace()`.
bool QQmlListReference::clear() const
Löscht die Liste. Gibt „true“ zurück, wenn der Vorgang erfolgreich war, andernfalls „false“.
Siehe auch ` canClear()`.
qsizetype QQmlListReference::count() const
Gibt die Anzahl der Elemente in der Liste zurück oder 0, falls die Operation fehlgeschlagen ist.
bool QQmlListReference::isManipulable() const
Gibt „true“ zurück, wenn at(), count(), append() sowie entweder clear() oder removeLast() implementiert sind, sodass Sie die Liste bearbeiten können.
Beachten Sie, dass replace() und removeLast() emuliert werden können, indem alle Elemente zwischengespeichert und die Liste mit clear() und append() neu aufgebaut wird. Daher sind sie nicht erforderlich, damit die Liste bearbeitet werden kann. Außerdem kann clear() mit removeLast() emuliert werden.
Siehe auch isReadable(), at(), count(), append(), clear(), replace() und removeLast().
bool QQmlListReference::isReadable() const
Gibt „true“ zurück, wenn „ at()“ und „ count()“ implementiert sind, sodass Sie auf die Elemente zugreifen können.
Siehe auch ` isManipulable()`, ` at()` und ` count()`.
bool QQmlListReference::isValid() const
Gibt „true“ zurück, wenn sich die Instanz auf eine gültige Listen-Eigenschaft bezieht, andernfalls „false“.
const QMetaObject *QQmlListReference::listElementType() const
Gibt den „ QMetaObject “ für die in der Eigenschaft „list“ gespeicherten Elemente zurück oder „ nullptr “, falls die Referenz ungültig ist.
Die ` QMetaObject ` kann vorab verwendet werden, um festzustellen, ob eine bestimmte Instanz einer Liste hinzugefügt werden kann. Wenn beim Erstellen keine Engine übergeben wurde, gibt diese Funktion möglicherweise `nullptr` zurück.
QObject *QQmlListReference::object() const
Gibt das Objekt der Listen-Eigenschaft zurück. Gibt „ nullptr “ zurück, wenn die Referenz ungültig ist.
bool QQmlListReference::removeLast() const
Entfernt das letzte Element aus der Liste. Gibt „true“ zurück, wenn der Vorgang erfolgreich war, andernfalls „false“.
Siehe auch ` canRemoveLast()`.
bool QQmlListReference::replace(qsizetype index, QObject *object) const
Ersetzt den Eintrag unter index in der Liste durch object. Gibt „true“ zurück, wenn der Vorgang erfolgreich war, andernfalls „false“.
Siehe auch canReplace().
[since 6.2] qsizetype QQmlListReference::size() const
Gibt die Anzahl der Elemente in der Liste zurück oder 0, wenn die Operation fehlgeschlagen ist.
Diese Funktion wurde in Qt 6.2 eingeführt.
bool QQmlListReference::operator==(const QQmlListReference &other) const
Vergleicht dieses ` QQmlListReference ` mit ` other` und gibt ` true ` zurück, wenn sie gleich sind. Die beiden gelten nur dann als gleich, wenn eines durch eine Kopierzuweisung oder eine Kopierkonstruktion aus dem anderen erstellt wurde.
Hinweis: Unabhängig voneinander erstellte Referenzen auf dasselbe Objekt gelten nicht als gleich.
© 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.