QQmlProperty Class
Die Klasse „QQmlProperty“ abstrahiert den Zugriff auf Eigenschaften von Objekten, die aus QML erstellt wurden. Mehr...
| Header: | #include <QQmlProperty> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
| In QML: | qmlProperty |
Öffentliche Typen
| enum | PropertyTypeCategory { InvalidCategory, List, Object, Normal } |
| enum | Type { Invalid, Property, SignalProperty } |
Eigenschaften
Öffentliche Funktionen
| QQmlProperty() | |
| QQmlProperty(QObject *obj) | |
| QQmlProperty(QObject *obj, QQmlContext *ctxt) | |
| QQmlProperty(QObject *obj, QQmlEngine *engine) | |
| QQmlProperty(QObject *obj, const QString &name) | |
| QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt) | |
| QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine) | |
| QQmlProperty(const QQmlProperty &other) | |
| bool | connectNotifySignal(QObject *dest, const char *slot) const |
| bool | connectNotifySignal(QObject *dest, int method) const |
| bool | hasNotifySignal() const |
| int | index() const |
| bool | isDesignable() const |
| bool | isProperty() const |
| bool | isResettable() const |
| bool | isSignalProperty() const |
| bool | isValid() const |
| bool | isWritable() const |
| QMetaMethod | method() const |
| QString | name() const |
| bool | needsNotifySignal() const |
| QObject * | object() const |
| QMetaProperty | property() const |
| QMetaType | propertyMetaType() const |
| int | propertyType() const |
| QQmlProperty::PropertyTypeCategory | propertyTypeCategory() const |
| const char * | propertyTypeName() const |
| QVariant | read() const |
| bool | reset() const |
| QQmlProperty::Type | type() const |
| bool | write(const QVariant &value) const |
| QQmlProperty & | operator=(const QQmlProperty &other) |
| bool | operator==(const QQmlProperty &other) const |
Statische öffentliche Mitglieder
| QVariant | read(const QObject *object, const QString &name) |
| QVariant | read(const QObject *object, const QString &name, QQmlContext *ctxt) |
| QVariant | read(const QObject *object, const QString &name, QQmlEngine *engine) |
| bool | write(QObject *object, const QString &name, const QVariant &value) |
| bool | write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt) |
| bool | write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine) |
Ausführliche Beschreibung
Da QML das Metatyp-System von Qt verwendet, können alle vorhandenen „ QMetaObject “-Klassen genutzt werden, um von QML erstellte Objekte zu untersuchen und mit ihnen zu interagieren. Einige der neuen Funktionen von QML – wie beispielsweise Typsicherheit und angehängte Eigenschaften – lassen sich jedoch am einfachsten über die Klasse „QQmlProperty“ nutzen, die einen Teil ihrer natürlichen Komplexität vereinfacht.
Im Gegensatz zu ` QMetaProperty `, das eine Eigenschaft eines Klassentyps repräsentiert, kapseln `QQmlProperty` eine Eigenschaft einer bestimmten Objektinstanz. Um den Wert einer Eigenschaft auszulesen, erstellen Programmierer eine `QQmlProperty`-Instanz und rufen die Methode ` read()` auf. Ebenso wird zum Schreiben eines Eigenschaftswerts die Methode ` write()` verwendet.
Beispielsweise für den folgenden QML-Code:
// MyItem.qml
import QtQuick 2.0
Text { text: "A bit of text" }Auf die Eigenschaften des Objekts „ Text “ kann mithilfe von QQmlProperty wie folgt zugegriffen werden:
#include <QQmlProperty>
#include <QGraphicsObject>
...
QQuickView view(QUrl::fromLocalFile("MyItem.qml"));
QQmlProperty property(view.rootObject(), "font.pixelSize");
qWarning() << "Current pixel size:" << property.read().toInt();
property.write(24);
qWarning() << "Pixel size should now be 24:" << property.read().toInt();Dokumentation zu den Mitgliedstypen
enum QQmlProperty::PropertyTypeCategory
Diese Enumeration legt eine Kategorie von QML-Eigenschaften fest.
| Konstante | Wert | Beschreibung |
|---|---|---|
QQmlProperty::InvalidCategory | 0 | Die Eigenschaft ist ungültig oder es handelt sich um eine Signal-Eigenschaft. |
QQmlProperty::List | 1 | Die Eigenschaft ist eine „ QQmlListProperty “-Listen-Eigenschaft |
QQmlProperty::Object | 2 | Die Eigenschaft ist ein Zeiger auf einen abgeleiteten Typ „ QObject “ |
QQmlProperty::Normal | 3 | Die Eigenschaft ist eine normale Werteigenschaft. |
enum QQmlProperty::Type
Diese Enumeration legt einen Typ einer QML-Eigenschaft fest.
| Konstante | Wert | Beschreibung |
|---|---|---|
QQmlProperty::Invalid | 0 | Die Eigenschaft ist ungültig. |
QQmlProperty::Property | 1 | Die Eigenschaft ist eine reguläre Qt-Eigenschaft. |
QQmlProperty::SignalProperty | 2 | Die Eigenschaft ist eine Signal-Eigenschaft. |
Dokumentation zur Eigenschaft
[read-only] name : const QString
Diese Eigenschaft enthält den Namen der QML-Eigenschaft.
Zugriffsfunktionen:
| QString | name() const |
Siehe auch „ QQmlProperty::object “.
[read-only] object : QObject* const
Diese Eigenschaft enthält den Wert „ QObject “, der durch die QML-Eigenschaft dargestellt wird.
Zugriffsfunktionen:
| QObject * | object() const |
Siehe auch „ QQmlProperty::name “.
Dokumentation zu den Mitgliedsfunktionen
QQmlProperty::QQmlProperty()
Erstellen Sie eine ungültige QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj)
Erstellt eine `QQmlProperty` für die Standard-Eigenschaft von ` obj`. Falls keine Standard-Eigenschaft vorhanden ist, wird eine ungültige `QQmlProperty` erstellt.
QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)
Erstellt eine `QQmlProperty` für die Standard-Eigenschaft von ` obj ` unter Verwendung der ` context ` ctxt. Falls keine Standard-Eigenschaft vorhanden ist, wird eine ungültige `QQmlProperty` erstellt.
QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)
Erstellt ein `QQmlProperty` für die Standard-Eigenschaft von ` obj ` unter Verwendung der Umgebung zur Instanziierung von QML-Komponenten, die von ` engine` bereitgestellt wird. Falls keine Standard-Eigenschaft vorhanden ist, wird ein ungültiges `QQmlProperty` erstellt.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name)
Erstellt eine QQmlProperty für die Eigenschaft „ name “ von „ obj “.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)
Erstellt eine QQmlProperty für die Eigenschaft „ name “ von „ obj “ unter Verwendung des „ context “ ctxt.
Das Erstellen einer QQmlProperty ohne Kontext führt dazu, dass einige Eigenschaften – wie beispielsweise angehängte Eigenschaften – nicht mehr zugänglich sind.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)
Erstellt eine `QQmlProperty` für die Eigenschaft ` name ` von ` obj ` unter Verwendung der Umgebung zur Instanziierung von QML-Komponenten, die von ` engine` bereitgestellt wird.
QQmlProperty::QQmlProperty(const QQmlProperty &other)
Erstellen Sie eine Kopie von „ other “.
bool QQmlProperty::connectNotifySignal(QObject *dest, const char *slot) const
Verbindet das Änderungsbenachrichtigungssignal der Eigenschaft mit dem angegebenen „ slot “ des „ dest “-Objekts und gibt „true“ zurück. Gibt „false“ zurück, wenn diese Metoeigenschaft keine reguläre Qt-Eigenschaft darstellt, wenn sie kein Änderungsbenachrichtigungssignal besitzt oder wenn das „ dest “-Objekt nicht über das angegebene „ slot “ verfügt.
Hinweis: „ slot “ sollte mithilfe des SLOT()-Makros übergeben werden, damit es korrekt identifiziert wird.
bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const
Verbindet das Änderungsbenachrichtigungssignal der Eigenschaft mit dem angegebenen „ method “ des „ dest “-Objekts und gibt „true“ zurück. Gibt „false“ zurück, wenn diese Metaeigenschaft keine reguläre Qt-Eigenschaft darstellt, wenn sie kein Änderungsbenachrichtigungssignal besitzt oder wenn das „ dest “-Objekt nicht über das angegebene „ method “ verfügt.
bool QQmlProperty::hasNotifySignal() const
Gibt „true“ zurück, wenn die Eigenschaft über ein Änderungsbenachrichtigungssignal verfügt, andernfalls „false“.
int QQmlProperty::index() const
Gibt den Qt-Metaobjekt-Index der Eigenschaft zurück.
bool QQmlProperty::isDesignable() const
Gibt „true“ zurück, wenn die Eigenschaft gestaltbar ist, andernfalls „false“.
bool QQmlProperty::isProperty() const
Gibt „true“ zurück, wenn diese ` QQmlProperty ` eine reguläre Qt-Eigenschaft darstellt.
bool QQmlProperty::isResettable() const
Gibt „true“ zurück, wenn die Eigenschaft zurückgesetzt werden kann, andernfalls „false“.
bool QQmlProperty::isSignalProperty() const
Gibt „true“ zurück, wenn dieses „ QQmlProperty “ eine QML-Signal-Eigenschaft darstellt.
bool QQmlProperty::isValid() const
Gibt „true“ zurück, wenn „ QQmlProperty “ auf eine gültige Eigenschaft verweist, andernfalls „false“.
bool QQmlProperty::isWritable() const
Gibt „true“ zurück, wenn die Eigenschaft beschreibbar ist, andernfalls „false“.
QMetaMethod QQmlProperty::method() const
Gibt den „ QMetaMethod “ für diese Eigenschaft zurück, sofern es sich um einen „ SignalProperty “ handelt; andernfalls wird ein ungültiger „ QMetaMethod “ zurückgegeben.
QString QQmlProperty::name() const
Gibt den Namen dieser QML-Eigenschaft zurück.
Hinweis: Getter -Funktion für den Eigenschaftsnamen.
bool QQmlProperty::needsNotifySignal() const
Gibt „true“ zurück, wenn die Eigenschaft ein Änderungssignal benötigt, damit die Bindungen auf dem neuesten Stand bleiben; andernfalls „false“.
Einige Eigenschaften, wie beispielsweise angehängte Eigenschaften oder solche, deren Wert sich nie ändert, benötigen keinen Änderungsmelder.
QObject *QQmlProperty::object() const
Gibt die „ QObject “ des „ QQmlProperty “ zurück.
Hinweis: Getter -Funktion für das Eigenschaftsobjekt.
QMetaProperty QQmlProperty::property() const
Gibt das mit dieser QML-Eigenschaft verknüpfte ` Qt property ` zurück.
QMetaType QQmlProperty::propertyMetaType() const
Gibt den Metatyp der Eigenschaft zurück.
Siehe auch propertyType.
int QQmlProperty::propertyType() const
Gibt die Metatyp-ID der Eigenschaft zurück oder „ QMetaType::UnknownType “, falls die Eigenschaft keinen Metatyp hat.
Siehe auch propertyMetaType.
QQmlProperty::PropertyTypeCategory QQmlProperty::propertyTypeCategory() const
Gibt die Eigenschaftskategorie zurück.
const char *QQmlProperty::propertyTypeName() const
Gibt den Typnamen der Eigenschaft zurück oder 0, wenn die Eigenschaft keinen Typnamen hat.
QVariant QQmlProperty::read() const
Gibt den Wert der Eigenschaft zurück.
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name)
Gibt den Wert der Eigenschaft „ name “ von „ object “ zurück. Diese Methode entspricht folgendem Code:
QQmlProperty p(object, name);
p.read();[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)
Gibt den Wert der Eigenschaft „ name “ von „ object “ mithilfe der Methode „ context “ ctxt zurück. Diese Methode entspricht folgendem Code:
QQmlProperty p(object, name, context);
p.read();[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)
Gibt den Wert der Eigenschaft „ name “ von „ object “ unter Verwendung der Umgebung zur Instanziierung von QML-Komponenten zurück, die von engine bereitgestellt wird. Diese Methode entspricht:
QQmlProperty p(object, name, engine);
p.read();bool QQmlProperty::reset() const
Setzt die Eigenschaft zurück und gibt „true“ zurück, wenn die Eigenschaft zurückgesetzt werden kann. Wenn die Eigenschaft nicht zurückgesetzt werden kann, geschieht nichts und es wird „false“ zurückgegeben.
QQmlProperty::Type QQmlProperty::type() const
Gibt den Typ der Eigenschaft zurück.
bool QQmlProperty::write(const QVariant &value) const
Setzt den Wert der Eigenschaft auf „ value “. Gibt bei Erfolg „ true “ zurück oder „ false “, wenn die Eigenschaft nicht gesetzt werden kann, beispielsweise weil der Typ von „ value “ falsch ist.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)
Schreibt „ value “ in die Eigenschaft „ name “ von „ object “. Diese Methode entspricht folgendem Code:
QQmlProperty p(object, name);
p.write(value);Gibt bei Erfolg „ true “ zurück, andernfalls „ false “.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)
Schreibt „ value “ in die Eigenschaft „ name “ von „ object “ unter Verwendung der Methode „ context “ ctxt. Diese Methode entspricht folgendem Code:
QQmlProperty p(object, name, ctxt);
p.write(value);Gibt bei Erfolg „ true “ zurück, andernfalls „ false “.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)
Schreibt „ value “ in die Eigenschaft „ name “ von „ object “, wobei die von „ engine “ bereitgestellte Umgebung zur Instanziierung von QML-Komponenten verwendet wird. Diese Methode entspricht folgendem Code:
QQmlProperty p(object, name, engine);
p.write(value);Gibt bei Erfolg „ true “ zurück, andernfalls „ false “.
QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)
Weisen Sie „ other “ diesem „ QQmlProperty “ zu.
bool QQmlProperty::operator==(const QQmlProperty &other) const
Gibt „true“ zurück, wenn „ other “ und „ QQmlProperty “ dieselbe Eigenschaft darstellen.
© 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.