QDeclarativeProperty Class
The QDeclarativeProperty class abstracts accessing properties on objects created from QML. More...
Header: | #include <QDeclarativeProperty> |
Since: | Qt 4.7 |
Public Types
enum | PropertyTypeCategory { InvalidCategory, List, Object, Normal } |
enum | Type { Invalid, Property, SignalProperty } |
Public Functions
QDeclarativeProperty() | |
QDeclarativeProperty(QObject * obj) | |
QDeclarativeProperty(QObject * obj, QDeclarativeContext * ctxt) | |
QDeclarativeProperty(QObject * obj, QDeclarativeEngine * engine) | |
QDeclarativeProperty(QObject * obj, const QString & name) | |
QDeclarativeProperty(QObject * obj, const QString & name, QDeclarativeContext * ctxt) | |
QDeclarativeProperty(QObject * obj, const QString & name, QDeclarativeEngine * engine) | |
QDeclarativeProperty(const QDeclarativeProperty & 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 |
int | propertyType() const |
PropertyTypeCategory | propertyTypeCategory() const |
const char * | propertyTypeName() const |
QVariant | read() const |
bool | reset() const |
Type | type() const |
bool | write(const QVariant & value) const |
QDeclarativeProperty & | operator=(const QDeclarativeProperty & other) |
bool | operator==(const QDeclarativeProperty & other) const |
Static Public Members
QVariant | read(QObject * object, const QString & name) |
QVariant | read(QObject * object, const QString & name, QDeclarativeContext * ctxt) |
QVariant | read(QObject * object, const QString & name, QDeclarativeEngine * engine) |
bool | write(QObject * object, const QString & name, const QVariant & value) |
bool | write(QObject * object, const QString & name, const QVariant & value, QDeclarativeContext * ctxt) |
bool | write(QObject * object, const QString & name, const QVariant & value, QDeclarativeEngine * engine) |
Detailed Description
The QDeclarativeProperty class abstracts accessing properties on objects created from QML.
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 QDeclarativeProperty class that simplifies some of their natural complexity.
Unlike QMetaProperty which represents a property on a class type, QDeclarativeProperty encapsulates a property on a specific object instance. To read a property's value, programmers create a QDeclarativeProperty 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 1.0 Text { text: "A bit of text" }
The Text object's properties could be accessed using QDeclarativeProperty, like this:
#include <QDeclarativeProperty> #include <QGraphicsObject> ... QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml")); QDeclarativeProperty 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();
Member Type Documentation
enum QDeclarativeProperty::PropertyTypeCategory
This enum specifies a category of QML property.
Constant | Value | Description |
---|---|---|
QDeclarativeProperty::InvalidCategory | 0 | The property is invalid, or is a signal property. |
QDeclarativeProperty::List | 1 | The property is a QDeclarativeListProperty list property |
QDeclarativeProperty::Object | 2 | The property is a QObject derived type pointer |
QDeclarativeProperty::Normal | 3 | The property is a normal value property. |
enum QDeclarativeProperty::Type
This enum specifies a type of QML property.
Constant | Value | Description |
---|---|---|
QDeclarativeProperty::Invalid | 0 | The property is invalid. |
QDeclarativeProperty::Property | 1 | The property is a regular Qt property. |
QDeclarativeProperty::SignalProperty | 2 | The property is a signal property. |
Member Function Documentation
QDeclarativeProperty::QDeclarativeProperty()
Create an invalid QDeclarativeProperty.
QDeclarativeProperty::QDeclarativeProperty(QObject * obj)
Creates a QDeclarativeProperty for the default property of obj. If there is no default property, an invalid QDeclarativeProperty will be created.
QDeclarativeProperty::QDeclarativeProperty(QObject * obj, QDeclarativeContext * ctxt)
Creates a QDeclarativeProperty for the default property of obj using the context ctxt. If there is no default property, an invalid QDeclarativeProperty will be created.
QDeclarativeProperty::QDeclarativeProperty(QObject * obj, QDeclarativeEngine * engine)
Creates a QDeclarativeProperty 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 QDeclarativeProperty will be created.
QDeclarativeProperty::QDeclarativeProperty(QObject * obj, const QString & name)
Creates a QDeclarativeProperty for the property name of obj.
QDeclarativeProperty::QDeclarativeProperty(QObject * obj, const QString & name, QDeclarativeContext * ctxt)
Creates a QDeclarativeProperty for the property name of obj using the context ctxt.
Creating a QDeclarativeProperty without a context will render some properties - like attached properties - inaccessible.
QDeclarativeProperty::QDeclarativeProperty(QObject * obj, const QString & name, QDeclarativeEngine * engine)
Creates a QDeclarativeProperty for the property name of obj using the environment for instantiating QML components that is provided by engine.
QDeclarativeProperty::QDeclarativeProperty(const QDeclarativeProperty & other)
Create a copy of other.
bool QDeclarativeProperty::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.
bool QDeclarativeProperty::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 QDeclarativeProperty::hasNotifySignal() const
Returns true if the property has a change notifier signal, otherwise false.
int QDeclarativeProperty::index() const
Return the Qt metaobject index of the property.
bool QDeclarativeProperty::isDesignable() const
Returns true if the property is designable, otherwise false.
bool QDeclarativeProperty::isProperty() const
Returns true if this QDeclarativeProperty represents a regular Qt property.
bool QDeclarativeProperty::isResettable() const
Returns true if the property is resettable, otherwise false.
bool QDeclarativeProperty::isSignalProperty() const
Returns true if this QDeclarativeProperty represents a QML signal property.
bool QDeclarativeProperty::isValid() const
Returns true if the QDeclarativeProperty refers to a valid property, otherwise false.
bool QDeclarativeProperty::isWritable() const
Returns true if the property is writable, otherwise false.
QMetaMethod QDeclarativeProperty::method() const
Return the QMetaMethod for this property if it is a SignalProperty, otherwise returns an invalid QMetaMethod.
QString QDeclarativeProperty::name() const
Return the name of this QML property.
bool QDeclarativeProperty::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 * QDeclarativeProperty::object() const
Returns the QDeclarativeProperty's QObject.
QMetaProperty QDeclarativeProperty::property() const
Returns the Qt property associated with this QML property.
int QDeclarativeProperty::propertyType() const
Returns the QVariant type of the property, or QVariant::Invalid if the property has no QVariant type.
PropertyTypeCategory QDeclarativeProperty::propertyTypeCategory() const
Returns the property category.
const char * QDeclarativeProperty::propertyTypeName() const
Returns the type name of the property, or 0 if the property has no type name.
QVariant QDeclarativeProperty::read() const
Returns the property value.
[static]
QVariant QDeclarativeProperty::read(QObject * object, const QString & name)
Return the name property value of object. This method is equivalent to:
QDeclarativeProperty p(object, name); p.read();
[static]
QVariant QDeclarativeProperty::read(QObject * object, const QString & name, QDeclarativeContext * ctxt)
Return the name property value of object using the context ctxt. This method is equivalent to:
QDeclarativeProperty p(object, name, context); p.read();
[static]
QVariant QDeclarativeProperty::read(QObject * object, const QString & name, QDeclarativeEngine * 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:
QDeclarativeProperty p(object, name, engine); p.read();
bool QDeclarativeProperty::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.
Type QDeclarativeProperty::type() const
Returns the type of the property.
bool QDeclarativeProperty::write(const QVariant & value) const
Sets the property value to value and returns true. Returns false if the property can't be set because the value is the wrong type, for example.
[static]
bool QDeclarativeProperty::write(QObject * object, const QString & name, const QVariant & value)
Writes value to the name property of object. This method is equivalent to:
QDeclarativeProperty p(object, name); p.write(value);
[static]
bool QDeclarativeProperty::write(QObject * object, const QString & name, const QVariant & value, QDeclarativeContext * ctxt)
Writes value to the name property of object using the context ctxt. This method is equivalent to:
QDeclarativeProperty p(object, name, ctxt); p.write(value);
[static]
bool QDeclarativeProperty::write(QObject * object, const QString & name, const QVariant & value, QDeclarativeEngine * 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:
QDeclarativeProperty p(object, name, engine); p.write(value);
QDeclarativeProperty & QDeclarativeProperty::operator=(const QDeclarativeProperty & other)
Assign other to this QDeclarativeProperty.
bool QDeclarativeProperty::operator==(const QDeclarativeProperty & other) const
Returns true if other and this QDeclarativeProperty represent the same property.
© 2016 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.