QQmlProperty Class
La clase QQmlProperty abstrae el acceso a las propiedades de los objetos creados a partir de QML. Más...
| Cabecera: | #include <QQmlProperty> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml)target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
Tipos públicos
| enum | PropertyTypeCategory { InvalidCategory, List, Object, Normal } |
| enum | Type { Invalid, Property, SignalProperty } |
Propiedades
Funciones públicas
| 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 |
Miembros públicos estáticos
| 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) |
Descripción detallada
Dado que QML utiliza el sistema de meta-tipos de Qt, todas las clases existentes en QMetaObject pueden utilizarse para introspeccionar e interactuar con los objetos creados por QML. Sin embargo, algunas de las nuevas características proporcionadas por QML - como la seguridad de tipos y las propiedades adjuntas - se utilizan más fácilmente a través de la clase QQmlProperty que simplifica parte de su complejidad natural.
A diferencia de QMetaProperty, que representa una propiedad sobre un tipo de clase, QQmlProperty encapsula una propiedad sobre una instancia específica de un objeto. Para leer el valor de una propiedad, los programadores crean una instancia de QQmlProperty y llaman al método read(). Del mismo modo, para escribir el valor de una propiedad se utiliza el método write().
Por ejemplo, para el siguiente código QML:
// MyItem.qml import QtQuick 2.0 Text { text: "A bit of text" }
Se podría acceder a las propiedades del objeto Text utilizando QQmlProperty, de esta forma:
#include <QQmlProperty>#include <QGraphicsObject>...QQuickView ver(QUrl::fromLocalFile("MiItem.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();
Documentación del tipo de miembro
enum QQmlProperty::PropertyTypeCategory
Este enum especifica una categoría de propiedad QML.
| Constante | Valor | Descripción |
|---|---|---|
QQmlProperty::InvalidCategory | 0 | La propiedad no es válida o es una propiedad de señal. |
QQmlProperty::List | 1 | La propiedad es una propiedad de lista QQmlListProperty |
QQmlProperty::Object | 2 | La propiedad es un puntero de tipo derivado QObject |
QQmlProperty::Normal | 3 | La propiedad es una propiedad de valor normal. |
enum QQmlProperty::Type
Este enum especifica un tipo de propiedad QML.
| Constante | Valor | Descripción |
|---|---|---|
QQmlProperty::Invalid | 0 | La propiedad no es válida. |
QQmlProperty::Property | 1 | La propiedad es una propiedad Qt normal. |
QQmlProperty::SignalProperty | 2 | La propiedad es una propiedad de señal. |
Documentación de la propiedad
[read-only] name : const QString
Esta propiedad contiene el nombre de la propiedad QML.
Funciones de acceso:
| QString | name() const |
Véase también QQmlProperty::object.
[read-only] object : QObject* const
Esta propiedad contiene la dirección QObject representada por la propiedad QML.
Funciones de acceso:
| QObject * | object() const |
Véase también QQmlProperty::name.
Documentación de funciones miembro
QQmlProperty::QQmlProperty()
Crear un QQmlProperty inválido.
QQmlProperty::QQmlProperty(QObject *obj)
Crea un QQmlProperty para la propiedad por defecto de obj. Si no hay propiedad por defecto, se creará un QQmlProperty inválido.
QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)
Crea un QQmlProperty para la propiedad por defecto de obj utilizando el context ctxt . Si no hay ninguna propiedad por defecto, se creará un QQmlProperty inválido.
QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)
Crea un QQmlProperty para la propiedad por defecto de obj utilizando el entorno para instanciar componentes QML que proporciona engine. Si no existe una propiedad por defecto, se creará un QQmlProperty inválido.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name)
Crea un QQmlProperty para la propiedad name de obj.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)
Crea un QQmlProperty para la propiedad name de obj utilizando el context ctxt .
Crear un QQmlProperty sin un contexto hará que algunas propiedades - como las propiedades adjuntas - sean inaccesibles.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)
Crea un QQmlProperty para la propiedad name de obj utilizando el entorno para instanciar componentes QML que proporciona engine.
QQmlProperty::QQmlProperty(const QQmlProperty &other)
Cree una copia de other.
bool QQmlProperty::connectNotifySignal(QObject *dest, const char *slot) const
Conecta la señal del notificador de cambios de la propiedad al slot especificado del objeto dest y devuelve true. Devuelve false si esta metapropiedad no representa una propiedad Qt normal o si no tiene señal de notificador de cambios, o si el objeto dest no tiene el slot especificado.
Nota: slot debe pasarse utilizando la macro SLOT() para que se identifique correctamente.
bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const
Conecta la señal del notificador de cambios de la propiedad al method especificado del objeto dest y devuelve true. Devuelve false si esta metapropiedad no representa una propiedad Qt normal o si no tiene señal de notificador de cambios, o si el objeto dest no tiene el method especificado.
bool QQmlProperty::hasNotifySignal() const
Devuelve true si la propiedad tiene una señal de notificación de cambio, en caso contrario false.
int QQmlProperty::index() const
Devuelve el índice del metaobjeto Qt de la propiedad.
bool QQmlProperty::isDesignable() const
Devuelve true si la propiedad es designable, en caso contrario false.
bool QQmlProperty::isProperty() const
Devuelve true si este QQmlProperty representa una propiedad Qt normal.
bool QQmlProperty::isResettable() const
Devuelve true si la propiedad es reajustable, en caso contrario false.
bool QQmlProperty::isSignalProperty() const
Devuelve true si este QQmlProperty representa una propiedad de señal QML.
bool QQmlProperty::isValid() const
Devuelve true si QQmlProperty se refiere a una propiedad válida, en caso contrario false.
bool QQmlProperty::isWritable() const
Devuelve true si la propiedad es escribible, en caso contrario false.
QMetaMethod QQmlProperty::method() const
Devuelve el QMetaMethod para esta propiedad si es un SignalProperty, de lo contrario devuelve un QMetaMethod inválido.
QString QQmlProperty::name() const
Devuelve el nombre de esta propiedad QML.
Nota: Función Getter para el nombre de la propiedad.
bool QQmlProperty::needsNotifySignal() const
Devuelve true si la propiedad necesita una señal de notificación de cambio para que los enlaces se mantengan actualizados, false en caso contrario.
Algunas propiedades, como las propiedades adjuntas o aquellas cuyo valor nunca cambia, no necesitan un notificador de cambios.
QObject *QQmlProperty::object() const
Devuelve el QQmlProperty's QObject.
Nota: Función Getter para objeto de propiedad.
QMetaProperty QQmlProperty::property() const
Devuelve el Qt property asociado a esta propiedad QML.
QMetaType QQmlProperty::propertyMetaType() const
Devuelve el metatotipo de la propiedad.
Véase también propertyType.
int QQmlProperty::propertyType() const
Devuelve el id del metateipo de la propiedad, o QMetaType::UnknownType si la propiedad no tiene metateipo.
Véase también propertyMetaType.
QQmlProperty::PropertyTypeCategory QQmlProperty::propertyTypeCategory() const
Devuelve la categoría de la propiedad.
const char *QQmlProperty::propertyTypeName() const
Devuelve el nombre de tipo de la propiedad, o 0 si la propiedad no tiene nombre de tipo.
QVariant QQmlProperty::read() const
Devuelve el valor de la propiedad.
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name)
Devuelve el valor de la propiedad name de object. Este método es equivalente a:
QQmlProperty p(object, name); p.read();
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)
Devuelve el valor de la propiedad name de object utilizando la context ctxt . Este método es equivalente a:
QQmlProperty p(object, name, context); p.read();
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)
Devuelve el valor de la propiedad name de object utilizando el entorno para instanciar componentes QML que proporciona engine. Este método es equivalente a:
QQmlProperty p(object, name, engine); p.read();
bool QQmlProperty::reset() const
Reinicia la propiedad y devuelve true si la propiedad es reiniciable. Si la propiedad no se puede restablecer, no ocurre nada y se devuelve false.
QQmlProperty::Type QQmlProperty::type() const
Devuelve el tipo de la propiedad.
bool QQmlProperty::write(const QVariant &value) const
Establece el valor de la propiedad en value. Devuelve true en caso de éxito, o false si la propiedad no se puede establecer porque el value es del tipo incorrecto, por ejemplo.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)
Escribe value en la propiedad name de object. Este método es equivalente a:
QQmlProperty p(object, name); p.write(value);
Devuelve true en caso de éxito, false en caso contrario.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)
Escribe value en la propiedad name de object utilizando la context ctxt . Este método es equivalente a:
QQmlProperty p(object, name, ctxt); p.write(value);
Devuelve true en caso de éxito, false en caso contrario.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)
Escribe value en la propiedad name de object utilizando el entorno para instanciar componentes QML que proporciona engine. Este método es equivalente a:
QQmlProperty p(object, name, engine); p.write(value);
Devuelve true en caso de éxito, false en caso contrario.
QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)
Asigne other a este QQmlProperty.
bool QQmlProperty::operator==(const QQmlProperty &other) const
Devuelve true si other y este QQmlProperty representan la misma propiedad.
© 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.