QQmlListReference Class

Die Klasse QQmlListReference ermöglicht die Manipulation von QQmlListProperty Eigenschaften. Mehr...

Kopfzeile: #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

Detaillierte Beschreibung

QQmlListReference ermöglicht es C++-Programmen, auf einfache und typsichere Weise aus einer QML-Listeneigenschaft zu lesen und ihr Werte zuzuweisen. Eine QQmlListReference kann durch Übergabe eines Objekt- und Eigenschaftsnamens oder durch eine QQmlProperty Instanz erstellt werden. Diese beiden sind gleichwertig:

QQmlListReference ref1(object, "children");

QQmlProperty ref2(object, "children");
QQmlListReference ref2 = qvariant_cast<QQmlListReference>(ref2.read());

Nicht alle QML-Listeneigenschaften unterstützen alle Operationen. Eine Reihe von Methoden, canAppend(), canAt(), canClear() und canCount() ermöglichen es Programmen, abzufragen, ob eine Operation für eine bestimmte Eigenschaft unterstützt wird.

QML-Listeneigenschaften sind typsicher. Nur QObject's, die von der richtigen Basisklasse abgeleitet sind, können der Liste zugewiesen werden. Die Methode listElementType() kann verwendet werden, um die QMetaObject des unterstützten Typs QObject abzufragen. Der Versuch, Objekte des falschen Typs zu einer Listeneigenschaft hinzuzufügen, schlägt fehl.

Wie bei normalen Listen liegt es in der Verantwortung des Aufrufers, beim Zugriff auf ein Listenelement über den Index sicherzustellen, dass er vor dem Aufruf von at() mit der Methode count() kein Element außerhalb des Bereichs anfordert.

Dokumentation der Mitgliedsfunktionen

QQmlListReference::QQmlListReference()

Konstruiert eine ungültige Instanz.

[explicit, since 6.1] QQmlListReference::QQmlListReference(const QVariant &variant)

Konstruiert eine QQmlListReference aus einer QVariant variant mit einer QQmlListProperty. Wenn variant keine Listeneigenschaft enthält, wird eine ungültige QQmlListReference erstellt. Wenn das Objekt, das die Listeneigenschaft besitzt, zerstört wird, nachdem die Referenz erstellt wurde, wird sie automatisch ungültig. Das heißt, es ist sicher, QQmlListReference-Instanzen zu halten, auch nachdem das Objekt gelöscht wurde.

Diese Funktion wurde in Qt 6.1 eingeführt.

QQmlListReference::QQmlListReference(QObject *object, const char *property)

Konstruiert eine QQmlListReference für object's property. Wenn property keine Listeneigenschaft ist, wird eine ungültige QQmlListReference erstellt. Wenn object zerstört wird, nachdem die Referenz erstellt wurde, wird sie automatisch ungültig. Das heißt, es ist sicher, QQmlListReference-Instanzen zu halten, auch nachdem object gelöscht wurde.

bool QQmlListReference::append(QObject *object) const

Hängt object an die Liste an. 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 0, wenn der Vorgang fehlgeschlagen ist.

Siehe auch canAt().

bool QQmlListReference::canAppend() const

Gibt true zurück, wenn an die Listeneigenschaft angehängt werden kann, andernfalls false. Gibt false zurück, wenn der Verweis ungültig ist.

Siehe auch append().

bool QQmlListReference::canAt() const

Gibt true zurück, wenn die Listeneigenschaft nach Index abgefragt werden kann, andernfalls false. Gibt false zurück, wenn der Verweis ungültig ist.

Siehe auch at().

bool QQmlListReference::canClear() const

Gibt true zurück, wenn die Listeneigenschaft geleert werden kann, andernfalls false. Gibt false zurück, wenn der Verweis ungültig ist.

Siehe auch clear().

bool QQmlListReference::canCount() const

Gibt true zurück, wenn die Listeneigenschaft nach ihrer Elementanzahl abgefragt werden kann, andernfalls false. Gibt false zurück, wenn der Verweis ungültig ist.

Siehe auch count().

bool QQmlListReference::canRemoveLast() const

Gibt true zurück, wenn das letzte Element aus der Listeneigenschaft entfernt werden kann, andernfalls false. Gibt false zurück, wenn der Verweis ungültig ist.

Siehe auch removeLast().

bool QQmlListReference::canReplace() const

Gibt true zurück, wenn Elemente in der Listeneigenschaft ersetzt werden können, andernfalls false. Gibt false zurück, wenn der Verweis 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 Objekte in der Liste zurück, oder 0, wenn der Vorgang fehlgeschlagen ist.

bool QQmlListReference::isManipulable() const

Gibt true zurück, wenn at(), count(), append() und entweder clear() oder removeLast() implementiert sind, so dass Sie die Liste manipulieren können.

Beachten Sie, dass replace() und removeLast() emuliert werden können, indem man alle Elemente versteckt und die Liste mit clear() und append() neu aufbaut. Sie sind also nicht erforderlich, damit die Liste manipuliert 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, so dass 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 Listeneigenschaft bezieht, andernfalls false.

const QMetaObject *QQmlListReference::listElementType() const

Gibt die QMetaObject für die in der Listeneigenschaft gespeicherten Elemente zurück, oder nullptr, wenn der Verweis ungültig ist.

Die QMetaObject kann im Voraus verwendet werden, um festzustellen, ob eine gegebene Instanz zu einer Liste hinzugefügt werden kann. Wenn Sie bei der Erstellung keine Engine übergeben haben, kann dies nullptr zurückgeben.

QObject *QQmlListReference::object() const

Gibt das Objekt der Listeneigenschaft zurück. Gibt nullptr zurück, wenn der Verweis ungültig ist.

bool QQmlListReference::removeLast() const

Entfernt das letzte Element in 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 das Element an 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 Objekte 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 diese QQmlListReference mit other und gibt true zurück, wenn sie gleich sind. Die beiden werden nur dann als gleich angesehen, wenn der eine aus dem anderen durch Kopierzuweisung oder Kopierkonstruktion erstellt wurde.

Hinweis: Unabhängig voneinander erstellte Verweise auf dasselbe Objekt werden nicht als gleich angesehen.

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