Auf dieser Seite

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.

KonstanteWertBeschreibung
QQmlProperty::InvalidCategory0Die Eigenschaft ist ungültig oder es handelt sich um eine Signal-Eigenschaft.
QQmlProperty::List1Die Eigenschaft ist eine „ QQmlListProperty “-Listen-Eigenschaft
QQmlProperty::Object2Die Eigenschaft ist ein Zeiger auf einen abgeleiteten Typ „ QObject “
QQmlProperty::Normal3Die Eigenschaft ist eine normale Werteigenschaft.

enum QQmlProperty::Type

Diese Enumeration legt einen Typ einer QML-Eigenschaft fest.

KonstanteWertBeschreibung
QQmlProperty::Invalid0Die Eigenschaft ist ungültig.
QQmlProperty::Property1Die Eigenschaft ist eine reguläre Qt-Eigenschaft.
QQmlProperty::SignalProperty2Die 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.