Sur cette page

QQmlProperty Class

La classe QQmlProperty permet d'accéder de manière abstraite aux propriétés des objets créés à partir de QML. Plus d'informations...

En-tête : #include <QQmlProperty>
CMake : find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake : QT += qml

Types publics

enum PropertyTypeCategory { InvalidCategory, List, Object, Normal }
enum Type { Invalid, Property, SignalProperty }

Propriétés

Fonctions publiques

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

Membres publics statiques

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)

Description détaillée

Comme QML utilise le système de méta-type de Qt, toutes les classes existantes de QMetaObject peuvent être utilisées pour introspecter et interagir avec les objets créés par QML. Cependant, certaines des nouvelles fonctionnalités fournies par QML - telles que la sécurité des types et les propriétés attachées - sont plus faciles à utiliser grâce à la classe QQmlProperty qui simplifie une partie de leur complexité naturelle.

Contrairement à QMetaProperty qui représente une propriété sur un type de classe, QQmlProperty encapsule une propriété sur une instance d'objet spécifique. Pour lire la valeur d'une propriété, les programmeurs créent une instance de QQmlProperty et appellent la méthode read(). De même, pour écrire la valeur d'une propriété, la méthode write() est utilisée.

Par exemple, pour le code QML suivant :

// MyItem.qml
import QtQuick 2.0

Text { text: "A bit of text" }

Les propriétés de l'objet Text peuvent être accédées à l'aide de QQmlProperty, comme suit :

#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();

Type de membre Documentation

enum QQmlProperty::PropertyTypeCategory

Cette énumération spécifie une catégorie de propriété QML.

ConstanteValeurDescription de la propriété
QQmlProperty::InvalidCategory0La propriété n'est pas valide ou est une propriété de signal.
QQmlProperty::List1La propriété est une propriété de liste QQmlListProperty
QQmlProperty::Object2La propriété est un pointeur de type dérivé QObject
QQmlProperty::Normal3La propriété est une propriété de valeur normale.

enum QQmlProperty::Type

Cette énumération spécifie un type de propriété QML.

ConstanteValeurDescription de la propriété
QQmlProperty::Invalid0La propriété n'est pas valide.
QQmlProperty::Property1La propriété est une propriété Qt normale.
QQmlProperty::SignalProperty2La propriété est une propriété de signal.

Documentation sur les propriétés

[read-only] name : const QString

Cette propriété contient le nom de la propriété QML.

Fonctions d'accès :

QString name() const

Voir aussi QQmlProperty::object.

[read-only] object : QObject* const

Cette propriété contient le site QObject représenté par la propriété QML.

Fonctions d'accès :

QObject *object() const

Voir également QQmlProperty::name.

Documentation sur les fonctions membres

QQmlProperty::QQmlProperty()

Création d'une propriété QQml non valide.

QQmlProperty::QQmlProperty(QObject *obj)

Crée une QQmlProperty pour la propriété par défaut de obj. S'il n'y a pas de propriété par défaut, une QQmlProperty invalide sera créée.

QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)

Crée une QQmlProperty pour la propriété par défaut de obj à l'aide de context ctxt . S'il n'y a pas de propriété par défaut, une QQmlProperty invalide sera créée.

QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)

Crée une QQmlProperty pour la propriété par défaut de obj en utilisant l'environnement d'instanciation des composants QML fourni par engine. S'il n'y a pas de propriété par défaut, une QQmlProperty invalide sera créée.

QQmlProperty::QQmlProperty(QObject *obj, const QString &name)

Crée une QQmlProperty pour la propriété name de obj.

QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)

Crée une QQmlProperty pour la propriété name de obj en utilisant le contexte context ctxt .

La création d'une QQmlProperty sans contexte rendra certaines propriétés - comme les propriétés attachées - inaccessibles.

QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)

Crée une QQmlProperty pour la propriété name de obj en utilisant l'environnement d'instanciation des composants QML fourni par engine.

QQmlProperty::QQmlProperty(const QQmlProperty &other)

Créer une copie de other.

bool QQmlProperty::connectNotifySignal(QObject *dest, const char *slot) const

Connecte le signal de notification de changement de la propriété à l'adresse slot spécifiée de l'objet dest et renvoie vrai. Retourne false si cette métapropriété ne représente pas une propriété normale ou si elle n'a pas de signal de notification de changement, ou si l'objet dest n'a pas le slot spécifié.

Remarque : slot doit être transmis à l'aide de la macro SLOT() afin d'être correctement identifié.

bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const

Connecte le signal de notification de changement de la propriété à l'adresse method spécifiée de l'objet dest et renvoie vrai. Retourne false si cette métapropriété ne représente pas une propriété normale ou si elle n'a pas de signal de notification de changement, ou si l'objet dest n'a pas le method spécifié.

bool QQmlProperty::hasNotifySignal() const

Retourne true si le bien a un signal de notification de changement, sinon false.

int QQmlProperty::index() const

Renvoie l'index du métaobjet Qt de la propriété.

bool QQmlProperty::isDesignable() const

Retourne true si la propriété est désignable, sinon false.

bool QQmlProperty::isProperty() const

Retourne true si cette QQmlProperty représente une propriété Qt normale.

bool QQmlProperty::isResettable() const

Retourne true si la propriété est réinitialisable, sinon false.

bool QQmlProperty::isSignalProperty() const

Retourne true si cette QQmlProperty représente une propriété de signal QML.

bool QQmlProperty::isValid() const

Retourne true si le QQmlProperty fait référence à une propriété valide, sinon false.

bool QQmlProperty::isWritable() const

Retourne true si la propriété est accessible en écriture, sinon false.

QMetaMethod QQmlProperty::method() const

Renvoie l'adresse QMetaMethod pour cette propriété s'il s'agit d'une adresse SignalProperty, sinon renvoie une adresse QMetaMethod invalide.

QString QQmlProperty::name() const

Renvoie le nom de cette propriété QML.

Note : Fonction Getter pour le nom de la propriété.

bool QQmlProperty::needsNotifySignal() const

Retourne true si la propriété a besoin d'un signal de notification de changement pour que les liaisons restent à jour, false dans le cas contraire.

Certaines propriétés, telles que les propriétés attachées ou celles dont la valeur ne change jamais, ne nécessitent pas de signal de changement.

QObject *QQmlProperty::object() const

Renvoie l'adresse QQmlProperty's QObject.

Note : Fonction Getter pour l'objet propriété.

QMetaProperty QQmlProperty::property() const

Renvoie l'adresse Qt property associée à cette propriété QML.

QMetaType QQmlProperty::propertyMetaType() const

Renvoie le métatype de la propriété.

Voir aussi propertyType.

int QQmlProperty::propertyType() const

Renvoie l'identifiant du métatype de la propriété, ou QMetaType::UnknownType si la propriété n'a pas de métatype.

Voir aussi propertyMetaType.

QQmlProperty::PropertyTypeCategory QQmlProperty::propertyTypeCategory() const

Renvoie la catégorie du bien.

const char *QQmlProperty::propertyTypeName() const

Renvoie le nom du type de la propriété, ou 0 si la propriété n'a pas de nom de type.

QVariant QQmlProperty::read() const

Renvoie la valeur de la propriété.

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name)

Renvoyer la valeur de la propriété name de object. Cette méthode est équivalente à :

QQmlProperty p(object, name);
p.read();

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)

Renvoyer la valeur de la propriété name de object à l'aide de context ctxt . Cette méthode est équivalente à :

QQmlProperty p(object, name, context);
p.read();

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)

Renvoie la valeur de la propriété name de object en utilisant l'environnement d'instanciation des composants QML fourni par engine. Cette méthode est équivalente à :

QQmlProperty p(object, name, engine);
p.read();

bool QQmlProperty::reset() const

Réinitialise la propriété et renvoie true si la propriété est réinitialisable. Si la propriété n'est pas réinitialisable, rien ne se passe et false est renvoyé.

QQmlProperty::Type QQmlProperty::type() const

Renvoie le type de la propriété.

bool QQmlProperty::write(const QVariant &value) const

Définit la valeur de la propriété à value. Renvoie true en cas de succès, ou false si la propriété ne peut pas être définie parce que value n'est pas le bon type, par exemple.

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)

Écrit value dans la propriété name de object. Cette méthode est équivalente à :

QQmlProperty p(object, name);
p.write(value);

Retourne true en cas de succès, false dans le cas contraire.

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)

Écrit value dans la propriété name de object en utilisant context ctxt . Cette méthode est équivalente à :

QQmlProperty p(object, name, ctxt);
p.write(value);

Retourne true en cas de succès, false dans le cas contraire.

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)

Écrit value dans la propriété name de object en utilisant l'environnement d'instanciation des composants QML fourni par engine. Cette méthode est équivalente à :

QQmlProperty p(object, name, engine);
p.write(value);

Retourne true en cas de succès, false dans le cas contraire.

QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)

Attribuer other à ce QQmlProperty.

bool QQmlProperty::operator==(const QQmlProperty &other) const

Retourne true si other et this QQmlProperty représentent la même propriété.

© 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.