QProperty Class
template <typename T> class QPropertyThe QProperty class is a template class that enables automatic property bindings. More...
Header: | #include <QProperty> |
CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Since: | Qt 6.0 |
Inherits: | QPropertyData |
Public Functions
QProperty(T &&initialValue) | |
QProperty(const T &initialValue) | |
QProperty(Functor &&f) | |
QProperty(const QPropertyBinding<T> &binding) | |
QProperty() | |
QProperty<T> & | operator=(const QPropertyBinding<T> &newBinding) |
~QProperty() | |
QPropertyBinding<T> | binding() const |
QPropertyChangeHandler<Functor> | onValueChanged(Functor f) |
QPropertyBinding<T> | setBinding(const QPropertyBinding<T> &newBinding) |
bool | setBinding(const QUntypedPropertyBinding &newBinding) |
QPropertyBinding<T> | setBinding(Functor f) |
void | setValue(QProperty::rvalue_ref newValue) |
void | setValue(QProperty::parameter_type newValue) |
QPropertyChangeHandler<Functor> | subscribe(Functor f) |
QPropertyBinding<T> | takeBinding() |
QProperty::parameter_type | value() const |
QProperty<T> & | operator=(QProperty::rvalue_ref newValue) |
QProperty<T> & | operator=(QProperty::parameter_type newValue) |
Detailed Description
QProperty<T> is one of the classes implementing Qt Bindable Properties. It is a container that holds an instance of T. You can assign a value to it and you can read it via the value() function or the T conversion operator. You can also tie the property to an expression that computes the value dynamically, the binding expression. It is represented as a C++ lambda and can be used to express relationships between different properties in your application.
Member Function Documentation
QProperty<T> &QProperty::operator=(QProperty::parameter_type newValue)
QProperty<T> &QProperty::operator=(QProperty::rvalue_ref newValue)
Assigns newValue to this property and returns a reference to this QProperty.
void QProperty::setValue(QProperty::parameter_type newValue)
void QProperty::setValue(QProperty::rvalue_ref newValue)
Assigns newValue to this property and removes the property's associated binding, if present.
[default]
QProperty::QProperty(T &&initialValue)
Move-Constructs a property with the provided initialValue.
[default]
QProperty::QProperty(const T &initialValue)
Constructs a property with the provided initialValue.
template <typename Functor> QProperty::QProperty(Functor &&f)
Constructs a property that is tied to the provided binding expression f. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.
QProperty::QProperty(const QPropertyBinding<T> &binding)
Constructs a property that is tied to the provided binding expression. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.
QProperty::QProperty()
Constructs a property with a default constructed instance of T.
[default]
QProperty<T> &QProperty::operator=(const QPropertyBinding<T> &newBinding)
Associates the value of this property with the provided newBinding expression and returns a reference to this property. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.
QProperty::~QProperty()
Destroys the property.
QPropertyBinding<T> QProperty::binding() const
Returns the binding expression that is associated with this property. A default constructed QPropertyBinding<T> will be returned if no such association exists.
See also setBinding().
template <typename Functor> QPropertyChangeHandler<Functor> QProperty::onValueChanged(Functor f)
Registers the given functor f as a callback that shall be called whenever the value of the property changes.
The callback f is expected to be a type that has a plain call operator () without any parameters. This means that you can provide a C++ lambda expression, an std::function or even a custom struct with a call operator.
The returned property change handler object keeps track of the registration. When it goes out of scope, the callback is de-registered.
QPropertyBinding<T> QProperty::setBinding(const QPropertyBinding<T> &newBinding)
Associates the value of this property with the provided newBinding expression and returns the previously associated binding. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.
See also binding().
bool QProperty::setBinding(const QUntypedPropertyBinding &newBinding)
This is an overloaded function.
Associates the value of this property with the provided newBinding expression. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.
Returns true if the type of this property is the same as the type the binding function returns; false otherwise.
template <typename Functor> QPropertyBinding<T> QProperty::setBinding(Functor f)
This is an overloaded function.
Associates the value of this property with the provided functor f and returns the previously associated binding. The first time the property value is read, the binding is evaluated by invoking the call operator () of f. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.
template <typename Functor> QPropertyChangeHandler<Functor> QProperty::subscribe(Functor f)
Subscribes the given functor f as a callback that is called immediately and whenever the value of the property changes in the future.
The callback f is expected to be a type that has a plain call operator () without any parameters. This means that you can provide a C++ lambda expression, an std::function or even a custom struct with a call operator.
The returned property change handler object keeps track of the subscription. When it goes out of scope, the callback is unsubscribed.
QPropertyBinding<T> QProperty::takeBinding()
Disassociates the binding expression from this property and returns it. After calling this function, the value of the property will only change if you assign a new value to it, or when a new binding is set.
QProperty::parameter_type QProperty::value() const
Returns the value of the property. This may evaluate a binding expression that is tied to this property, before returning the value.
See also setValue().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qproperty.html