QQmlProperty Class
Die Klasse QQmlProperty abstrahiert den Zugriff auf Eigenschaften von Objekten, die mit QML erstellt wurden. Mehr...
Kopfzeile: | #include <QQmlProperty> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake: | QT += qml |
Öffentliche Typen
enum | PropertyTypeCategory { InvalidCategory, List, Object, Normal } |
enum | Type { Invalid, Property, SignalProperty } |
Ö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) |
Detaillierte Beschreibung
Da QML das Meta-Typ-System von Qt verwendet, können alle vorhandenen QMetaObject -Klassen zur Introspektion und Interaktion mit von QML erstellten Objekten verwendet werden. Einige der neuen Funktionen von QML - wie 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 darstellt, kapselt QQmlProperty eine Eigenschaft einer bestimmten Objektinstanz. Um den Wert einer Eigenschaft zu lesen, erstellen Programmierer eine QQmlProperty-Instanz und rufen die Methode read() auf. Um einen Eigenschaftswert zu schreiben, wird die Methode write() verwendet.
Zum Beispiel für den folgenden QML-Code:
// MyItem.qml import QtQuick 2.0 Text { text: "A bit of text" }
Auf die Eigenschaften des Text -Objekts könnte mit 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();
Mitgliedstyp Dokumentation
enum QQmlProperty::PropertyTypeCategory
Diese Aufzählung gibt eine Kategorie von QML-Eigenschaften an.
Konstante | Wert | Beschreibung |
---|---|---|
QQmlProperty::InvalidCategory | 0 | Die Eigenschaft ist ungültig, oder es handelt sich um eine Signaleigenschaft. |
QQmlProperty::List | 1 | Die Eigenschaft ist eine QQmlListProperty Listeneigenschaft |
QQmlProperty::Object | 2 | Die Eigenschaft ist ein QObject abgeleiteter Typzeiger |
QQmlProperty::Normal | 3 | Bei der Eigenschaft handelt es sich um eine normale Werteigenschaft. |
enum QQmlProperty::Type
Diese Aufzählung gibt einen Typ einer QML-Eigenschaft an.
Konstante | Wert | Beschreibung |
---|---|---|
QQmlProperty::Invalid | 0 | Die Eigenschaft ist ungültig. |
QQmlProperty::Property | 1 | Die Eigenschaft ist eine normale Qt-Eigenschaft. |
QQmlProperty::SignalProperty | 2 | Die Eigenschaft ist eine Signaleigenschaft. |
Dokumentation der Mitgliedsfunktionen
QQmlProperty::QQmlProperty()
Erstellen einer ungültigen QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj)
Erzeugt eine QQmlProperty für die Standardeigenschaft von obj. Wenn es keine Standardeigenschaft gibt, wird eine ungültige QQmlProperty erzeugt.
QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)
Erzeugt eine QQmlProperty für die Standardeigenschaft von obj unter Verwendung der context ctxt . Wenn es keine Standardeigenschaft gibt, wird eine ungültige QQmlProperty erstellt.
QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)
Erstellt eine QQmlProperty für die Standardeigenschaft von obj unter Verwendung der Umgebung für die Instanziierung von QML-Komponenten, die von engine bereitgestellt wird. Wenn es keine Standardeigenschaft gibt, wird eine ungültige QQmlProperty erstellt.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name)
Erzeugt 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 der context ctxt .
Das Erstellen einer QQmlProperty ohne Kontext macht einige Eigenschaften - wie angehängte Eigenschaften - unzugänglich.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)
Erstellt eine QQmlProperty für die Eigenschaft name von obj unter Verwendung der Umgebung für die 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 Change Notifier Signal der Eigenschaft mit dem angegebenen slot des dest Objekts und gibt true zurück. Gibt false zurück, wenn diese Metaeigenschaft keine reguläre Qt-Eigenschaft darstellt oder wenn sie kein Änderungsbenachrichtigungssignal hat, oder wenn das dest Objekt nicht das angegebene slot hat.
Hinweis: slot sollte mit dem Makro SLOT() übergeben werden, damit es korrekt identifiziert wird.
bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const
Verbindet das Change Notifier Signal 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 oder wenn sie kein Änderungsbenachrichtigungssignal hat, oder wenn das dest Objekt nicht das angegebene method hat.
bool QQmlProperty::hasNotifySignal() const
Gibt true zurück, wenn die Eigenschaft ein Änderungsmeldungssignal hat, andernfalls false.
int QQmlProperty::index() const
Gibt den Qt-Metaobjektindex 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ücksetzbar ist, andernfalls false.
bool QQmlProperty::isSignalProperty() const
Gibt true zurück, wenn diese QQmlProperty eine QML-Signaleigenschaft darstellt.
bool QQmlProperty::isValid() const
Gibt true zurück, wenn sich QQmlProperty auf eine gültige Eigenschaft bezieht, andernfalls false.
bool QQmlProperty::isWritable() const
Gibt true zurück, wenn die Eigenschaft beschreibbar ist, andernfalls false.
QMetaMethod QQmlProperty::method() const
Gibt die QMetaMethod für diese Eigenschaft zurück, wenn es sich um eine SignalProperty handelt, andernfalls wird eine ungültige 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 Änderungsbenachrichtigungssignal benötigt, damit die Bindungen auf dem neuesten Stand bleiben, andernfalls false.
Einige Eigenschaften, wie z. B. angehängte Eigenschaften oder solche, deren Wert sich nie ändert, benötigen keinen Änderungsmelder.
QObject *QQmlProperty::object() const
Gibt die QQmlProperty's QObject zurück.
Hinweis: Getter-Funktion für Property-Objekt.
QMetaProperty QQmlProperty::property() const
Gibt die mit dieser QML-Eigenschaft verbundene Qt property zurück.
QMetaType QQmlProperty::propertyMetaType() const
Gibt den Metatyp der Eigenschaft zurück.
Siehe auch propertyType.
int QQmlProperty::propertyType() const
Gibt die Metatype-ID der Eigenschaft zurück, oder QMetaType::UnknownType, wenn die Eigenschaft keinen Metatype 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 Eigenschaftswert zurück.
[static]
QVariant QQmlProperty::read(const QObject *object, const QString &name)
Rückgabe des Eigenschaftswerts name von object. Diese Methode ist gleichbedeutend mit:
QQmlProperty p(object, name); p.read();
[static]
QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)
Rückgabe des Eigenschaftswertes name von object unter Verwendung von context ctxt . Diese Methode ist äquivalent zu:
QQmlProperty p(object, name, context); p.read();
[static]
QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)
Liefert den Wert der Eigenschaft name von object unter Verwendung der Umgebung für die Instanziierung von QML-Komponenten, die von engine bereitgestellt wird. Diese Methode ist äquivalent zu:
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ücksetzbar ist. Wenn die Eigenschaft nicht zurücksetzbar ist, geschieht nichts und false wird zurückgegeben.
QQmlProperty::Type QQmlProperty::type() const
Gibt den Typ der Eigenschaft zurück.
bool QQmlProperty::write(const QVariant &value) const
Setzt den Eigenschaftswert auf value. Gibt bei Erfolg true
zurück oder false
, wenn die Eigenschaft nicht festgelegt werden kann, weil z. B. value der falsche Typ ist.
[static]
bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)
Schreibt value in die Eigenschaft name von object. Diese Methode ist äquivalent zu:
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 von context ctxt . Diese Methode ist äquivalent zu:
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 unter Verwendung der Umgebung für die Instanziierung von QML-Komponenten, die von engine bereitgestellt wird. Diese Methode ist äquivalent zu:
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 dieser QQmlProperty zu.
bool QQmlProperty::operator==(const QQmlProperty &other) const
Gibt true zurück, wenn other und diese QQmlProperty dieselbe Eigenschaft darstellen.
© 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.