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.