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.
| Constante | Valeur | Description de la propriété |
|---|---|---|
QQmlProperty::InvalidCategory | 0 | La propriété n'est pas valide ou est une propriété de signal. |
QQmlProperty::List | 1 | La propriété est une propriété de liste QQmlListProperty |
QQmlProperty::Object | 2 | La propriété est un pointeur de type dérivé QObject |
QQmlProperty::Normal | 3 | La propriété est une propriété de valeur normale. |
enum QQmlProperty::Type
Cette énumération spécifie un type de propriété QML.
| Constante | Valeur | Description de la propriété |
|---|---|---|
QQmlProperty::Invalid | 0 | La propriété n'est pas valide. |
QQmlProperty::Property | 1 | La propriété est une propriété Qt normale. |
QQmlProperty::SignalProperty | 2 | La 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.