QQmlProperty Class▲
-
Header: QQmlProperty
-
Since: Qt 5.0
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
-
qmake: QT += qml
Detailed Description▲
As QML uses Qt's meta-type system all of the existing QMetaObject classes can be used to introspect and interact with objects created by QML. However, some of the new features provided by QML - such as type safety and attached properties - are most easily used through the QQmlProperty class that simplifies some of their natural complexity.
Unlike QMetaProperty which represents a property on a class type, QQmlProperty encapsulates a property on a specific object instance. To read a property's value, programmers create a QQmlProperty instance and call the read() method. Likewise to write a property value the write() method is used.
For example, for the following QML code:
// MyItem.qml
import
QtQuick 2.0
Text
{
text
:
"A bit of text"
}
The Text object's properties could be accessed using QQmlProperty, like this:
#include <QQmlProperty>
#include <QGraphicsObject>
...
QQuickView view(QUrl::
fromLocalFile("MyItem.qml"
));
QQmlProperty property(view.rootObject(), "font.pixelSize"
);
qWarning() &
lt;&
lt; "Current pixel size:"
&
lt;&
lt; property.read().toInt();
property.write(24
);
qWarning() &
lt;&
lt; "Pixel size should now be 24:"
&
lt;&
lt; property.read().toInt();
Member Type Documentation▲
enum QQmlProperty::PropertyTypeCategory▲
This enum specifies a category of QML property.
Constant |
Value |
Description |
---|---|---|
QQmlProperty::InvalidCategory |
0 |
The property is invalid, or is a signal property. |
QQmlProperty::List |
1 |
The property is a QQmlListProperty list property |
QQmlProperty::Object |
2 |
The property is a QObject derived type pointer |
QQmlProperty::Normal |
3 |
The property is a normal value property. |
enum QQmlProperty::Type▲
This enum specifies a type of QML property.
Constant |
Value |
Description |
---|---|---|
QQmlProperty::Invalid |
0 |
The property is invalid. |
QQmlProperty::Property |
1 |
The property is a regular Qt property. |
QQmlProperty::SignalProperty |
2 |
The property is a signal property. |
Member Function Documentation▲
QQmlProperty::QQmlProperty()▲
Create an invalid QQmlProperty.
QQmlProperty::QQmlProperty(QObject *obj)▲
Creates a QQmlProperty for the default property of obj. If there is no default property, an invalid QQmlProperty will be created.
QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)▲
Creates a QQmlProperty for the default property of obj using the context ctxt. If there is no default property, an invalid QQmlProperty will be created.
QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)▲
Creates a QQmlProperty for the default property of obj using the environment for instantiating QML components that is provided by engine. If there is no default property, an invalid QQmlProperty will be created.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name)▲
Creates a QQmlProperty for the property name of obj.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)▲
Creates a QQmlProperty for the property name of obj using the context ctxt.
Creating a QQmlProperty without a context will render some properties - like attached properties - inaccessible.
QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)▲
Creates a QQmlProperty for the property name of obj using the environment for instantiating QML components that is provided by engine.
QQmlProperty::QQmlProperty(const QQmlProperty &other)▲
Create a copy of other.
bool QQmlProperty::connectNotifySignal(QObject *dest, const char *slot) const▲
Connects the property's change notifier signal to the specified slot of the dest object and returns true. Returns false if this metaproperty does not represent a regular Qt property or if it has no change notifier signal, or if the dest object does not have the specified slot.
slot should be passed using the SLOT() macro so it is correctly identified.
bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const▲
Connects the property's change notifier signal to the specified method of the dest object and returns true. Returns false if this metaproperty does not represent a regular Qt property or if it has no change notifier signal, or if the dest object does not have the specified method.
bool QQmlProperty::hasNotifySignal() const▲
Returns true if the property has a change notifier signal, otherwise false.
int QQmlProperty::index() const▲
Return the Qt metaobject index of the property.
bool QQmlProperty::isDesignable() const▲
Returns true if the property is designable, otherwise false.
bool QQmlProperty::isProperty() const▲
Returns true if this QQmlProperty represents a regular Qt property.
bool QQmlProperty::isResettable() const▲
Returns true if the property is resettable, otherwise false.
bool QQmlProperty::isSignalProperty() const▲
Returns true if this QQmlProperty represents a QML signal property.
bool QQmlProperty::isValid() const▲
Returns true if the QQmlProperty refers to a valid property, otherwise false.
bool QQmlProperty::isWritable() const▲
Returns true if the property is writable, otherwise false.
QMetaMethod QQmlProperty::method() const▲
Return the QMetaMethod for this property if it is a SignalProperty, otherwise returns an invalid QMetaMethod.
QString QQmlProperty::name() const▲
Return the name of this QML property.
Getter function for property name.
bool QQmlProperty::needsNotifySignal() const▲
Returns true if the property needs a change notifier signal for bindings to remain upto date, false otherwise.
Some properties, such as attached properties or those whose value never changes, do not require a change notifier.
QObject *QQmlProperty::object() const▲
Returns the QQmlProperty's QObject.
Getter function for property object.
QMetaProperty QQmlProperty::property() const▲
Returns the Qt property associated with this QML property.
QMetaType QQmlProperty::propertyMetaType() const▲
int QQmlProperty::propertyType() const▲
Returns the metatype id of the property, or QMetaType::UnknownType if the property has no metatype.
See Also▲
See also propertyMetaType
QQmlProperty::PropertyTypeCategory QQmlProperty::propertyTypeCategory() const▲
Returns the property category.
const char *QQmlProperty::propertyTypeName() const▲
Returns the type name of the property, or 0 if the property has no type name.
QVariant QQmlProperty::read() const▲
Returns the property value.
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name)▲
Return the name property value of object. This method is equivalent to:
QQmlProperty p(object, name);
p.read();
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)▲
Return the name property value of object using the context ctxt. This method is equivalent to:
QQmlProperty p(object, name, context);
p.read();
[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)▲
Return the name property value of object using the environment for instantiating QML components that is provided by engine. . This method is equivalent to:
QQmlProperty p(object, name, engine);
p.read();
bool QQmlProperty::reset() const▲
Resets the property and returns true if the property is resettable. If the property is not resettable, nothing happens and false is returned.
QQmlProperty::Type QQmlProperty::type() const▲
Returns the type of the property.
bool QQmlProperty::write(const QVariant &value) const▲
Sets the property value to value. Returns true on success, or false if the property can't be set because the value is the wrong type, for example.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)▲
Writes value to the name property of object. This method is equivalent to:
QQmlProperty p(object, name);
p.write(value);
Returns true on success, false otherwise.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)▲
Writes value to the name property of object using the context ctxt. This method is equivalent to:
QQmlProperty p(object, name, ctxt);
p.write(value);
Returns true on success, false otherwise.
[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)▲
Writes value to the name property of object using the environment for instantiating QML components that is provided by engine. This method is equivalent to:
QQmlProperty p(object, name, engine);
p.write(value);
Returns true on success, false otherwise.
QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)▲
Assign other to this QQmlProperty.
bool QQmlProperty::operator==(const QQmlProperty &other) const▲
Returns true if other and this QQmlProperty represent the same property.