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. Der Hauptvorteil gegenüber der Verwendung von QQmlListProperty selbst ist die Typauslöschung: QQmlListReference ist keine Vorlage, sondern kann für QQmlListProperties beliebigen Typs verwendet werden. Außerdem überwacht es das Owner-Objekt auf Löschung und lässt den Zugriff auf QQmlListProperty nicht mehr zu, wenn der Owner gelöscht wurde.
Sie können eine QQmlListReference entweder aus einem Objekt und einem Eigenschaftsnamen oder aus einer QVariant erstellen. Diese beiden 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 Aufbau einer QQmlListProperty durch manuelle Übergabe der Accessor-Funktionen können Sie den Zugriff auf die Liste einschränken, indem Sie nullptr an einige von ihnen übergeben. QQmlListReference wird diese erkennen und sie als nicht verfügbar melden.
QQmlListReferences sind typ-sicher. Nur QObjects, die von der richtigen Basisklasse abgeleitet sind, können der Liste hinzugefügt werden. Die Methode listElementType() kann verwendet werden, um die QMetaObject des Typs QObject abzufragen, die hinzugefügt werden können. Der Versuch, Objekte eines falschen Typs zu einer Listeneigenschaft hinzuzufügen, schlägt fehl.
Wie bei anderen Listen auch, muss der Aufrufer beim Zugriff auf ein Listenelement per Index sicherstellen, dass er kein Element außerhalb des Bereichs anfordert. Verwenden Sie die Methode count(), bevor Sie at() zu diesem Zweck aufrufen.
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 nullptr
, 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 Elemente 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 Elemente in der Liste zurück, oder 0, wenn der Vorgang 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.