![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
\inmodule QtCore More...
#include <qproperty.h>
Public Types | |
| using | value_type = typename QPropertyData<T>::value_type |
| using | parameter_type = typename QPropertyData<T>::parameter_type |
| using | rvalue_ref = typename QPropertyData<T>::rvalue_ref |
| using | arrow_operator_result = typename QPropertyData<T>::arrow_operator_result |
| Public Types inherited from QPropertyData< T > | |
| using | value_type = T |
| using | parameter_type = std::conditional_t<UseReferences, const T &, T> |
| using | rvalue_ref = typename std::conditional_t<UseReferences, T &&, DisableRValueRefs> |
| using | arrow_operator_result |
Public Member Functions | |
| QProperty ()=default | |
| Constructs a property with a default constructed instance of T. | |
| QProperty (parameter_type initialValue) | |
| QProperty (rvalue_ref initialValue) | |
| QProperty (const QPropertyBinding< T > &binding) | |
| Constructs a property that is tied to the provided binding expression. | |
| template<typename Functor> | |
| QProperty (Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, typename std::enable_if_t< std::is_invocable_r_v< T, Functor & > > *=nullptr) | |
| ~QProperty ()=default | |
| Destroys the property. | |
| parameter_type | value () const |
| Returns the value of the property. | |
| arrow_operator_result | operator-> () const |
| parameter_type | operator* () const |
| operator parameter_type () const | |
| void | setValue (rvalue_ref newValue) |
| void | setValue (parameter_type newValue) |
| Assigns newValue to this property and removes the property's associated binding, if present. | |
| QProperty< T > & | operator= (rvalue_ref newValue) |
| QProperty< T > & | operator= (parameter_type newValue) |
| Assigns newValue to this property and returns a reference to this QProperty. | |
| QPropertyBinding< T > | setBinding (const QPropertyBinding< T > &newBinding) |
| Associates the value of this property with the provided newBinding expression and returns the previously associated binding. | |
| bool | setBinding (const QUntypedPropertyBinding &newBinding) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Associates the value of this property with the provided newBinding expression. | |
| template<typename Functor> | |
| QPropertyBinding< T > | setBinding (Functor &&f, const QPropertyBindingSourceLocation &location=QT_PROPERTY_DEFAULT_BINDING_LOCATION, std::enable_if_t< std::is_invocable_v< Functor > > *=nullptr) |
| bool | hasBinding () const |
| QPropertyBinding< T > | binding () const |
| Returns the binding expression that is associated with this property. | |
| QPropertyBinding< T > | takeBinding () |
| Disassociates the binding expression from this property and returns it. | |
| template<typename Functor> | |
| QPropertyChangeHandler< Functor > | onValueChanged (Functor f) |
| Registers the given functor f as a callback that shall be called whenever the value of the property changes. | |
| template<typename Functor> | |
| QPropertyChangeHandler< Functor > | subscribe (Functor f) |
| template<typename Functor> | |
| QPropertyNotifier | addNotifier (Functor f) |
| const QtPrivate::QPropertyBindingData & | bindingData () const |
| Public Member Functions inherited from QPropertyData< T > | |
| QPropertyData ()=default | |
| QPropertyData (parameter_type t) | |
| QPropertyData (rvalue_ref t) | |
| ~QPropertyData ()=default | |
| parameter_type | valueBypassingBindings () const |
| Returns the data stored in this property. | |
| void | setValueBypassingBindings (parameter_type v) |
| Sets the data value stored in this property to v. | |
| void | setValueBypassingBindings (rvalue_ref v) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the data value stored in this property to v. | |
Friends | |
| template<typename U, std::enable_if_t<!std::is_same_v< T, U > > * = nullptr> | |
| void | operator== (const QProperty &, const QProperty< U > &) QPROPERTY_DECL_DELETED_EQ_OP |
| template<typename U, std::enable_if_t<!std::is_same_v< T, U > > * = nullptr> | |
| void | operator!= (const QProperty &, const QProperty< U > &) QPROPERTY_DECL_DELETED_EQ_OP |
| template<typename Ty = T, std::enable_if_t< QTypeTraits::has_operator_equal_v< Ty > > * = nullptr> | |
| bool | comparesEqual (const QProperty &lhs, const QProperty &rhs) |
| template<typename Ty = T, std::enable_if_t< QTypeTraits::has_operator_equal_v< Ty > > * = nullptr> | |
| bool | comparesEqual (const QProperty &lhs, const T &rhs) |
| template<typename U, std::enable_if_t< has_operator_equal_to_v< U > > * = nullptr> | |
| bool | comparesEqual (const QProperty &lhs, const U &rhs) |
Related Symbols | |
(Note that these are not member symbols.) | |
| void | beginPropertyUpdateGroup () |
| void | endPropertyUpdateGroup () |
Additional Inherited Members | |
| Protected Attributes inherited from QPropertyData< T > | |
| T | val = T() |
| Static Protected Attributes inherited from QPropertyData< T > | |
| static constexpr bool | UseReferences = !(std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>) |
\inmodule QtCore
The QProperty class is a template class that enables automatic property bindings.
QProperty is a template class where the template parameter T specifies the type of the property value.
QProperty<T> is one of the classes implementing \l {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.
Definition at line 360 of file qproperty.h.
| using QProperty< T >::arrow_operator_result = typename QPropertyData<T>::arrow_operator_result |
Definition at line 387 of file qproperty.h.
| using QProperty< T >::parameter_type = typename QPropertyData<T>::parameter_type |
Definition at line 385 of file qproperty.h.
| using QProperty< T >::rvalue_ref = typename QPropertyData<T>::rvalue_ref |
Definition at line 386 of file qproperty.h.
| using QProperty< T >::value_type = typename QPropertyData<T>::value_type |
Definition at line 384 of file qproperty.h.
|
default |
Constructs a property with a default constructed instance of T.
|
inlineexplicit |
Definition at line 390 of file qproperty.h.
|
inlineexplicit |
Definition at line 391 of file qproperty.h.
|
inlineexplicit |
Constructs a property that is tied to the provided binding expression.
The property's value is set to the result of evaluating the new binding. Whenever a dependency of the binding changes, the binding will be re-evaluated, and the property's value gets updated accordingly.
Definition at line 392 of file qproperty.h.
References setBinding().
|
inlineexplicit |
Definition at line 397 of file qproperty.h.
|
inline |
Subscribes the given functor f as a callback that is 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, a 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.
This method is in some cases easier to use than onValueChanged(), as the returned object is not a template. It can therefore more easily be stored, e.g. as a member in a class.
Definition at line 540 of file qproperty.h.
|
inline |
Returns the binding expression that is associated with this property.
A default constructed QPropertyBinding<T> will be returned if no such association exists.
Definition at line 514 of file qproperty.h.
|
inline |
Definition at line 546 of file qproperty.h.
|
inline |
Definition at line 512 of file qproperty.h.
|
inline |
Registers the given functor f as a callback that shall be called whenever the value of the property changes.
On each value change, the handler is either called immediately, or deferred, depending on the context.
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, a 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.
Definition at line 525 of file qproperty.h.
|
inline |
Definition at line 451 of file qproperty.h.
References value().
|
inline |
Definition at line 446 of file qproperty.h.
References value().
|
inline |
Definition at line 434 of file qproperty.h.
References value().
|
inline |
Assigns newValue to this property and returns a reference to this QProperty.
Definition at line 480 of file qproperty.h.
|
inline |
Definition at line 474 of file qproperty.h.
|
inline |
Associates the value of this property with the provided newBinding expression and returns the previously associated binding.
The property's value is set to the result of evaluating the new binding. Whenever a dependency of the binding changes, the binding will be re-evaluated, and the property's value gets updated accordingly.
Definition at line 486 of file qproperty.h.
Referenced by QProperty(), setBinding(), and setBinding().
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Associates the value of this property with the provided newBinding expression.
The property's value is set to the result of evaluating the new binding. Whenever a dependency of the binding changes, the binding will be re-evaluated, and the property's value gets updated accordingly.
Returns true if the type of this property is the same as the type the binding function returns; false otherwise.
Definition at line 491 of file qproperty.h.
References setBinding().
|
inline |
Definition at line 501 of file qproperty.h.
References setBinding().
|
inline |
Assigns newValue to this property and removes the property's associated binding, if present.
Definition at line 465 of file qproperty.h.
|
inline |
Definition at line 456 of file qproperty.h.
|
inline |
Subscribes the given functor f as a callback that is called immediately and whenever the value of the property changes in the future. On each value change, the handler is either called immediately, or deferred, depending on the context.
The callback f is expected to be a type that can be copied and has a plain call operator() without any parameters. This means that you can provide a C++ lambda expression, a 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.
Definition at line 532 of file qproperty.h.
|
inline |
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.
Definition at line 519 of file qproperty.h.
|
inline |
Returns the value of the property.
This may evaluate a binding expression that is tied to this property, before returning the value.
Definition at line 428 of file qproperty.h.
Referenced by operator parameter_type(), operator*(), and operator->().
|
Marks the beginning of a property update group. Inside this group, changing a property does neither immediately update any dependent properties nor does it trigger change notifications. Those are instead deferred until the group is ended by a call to endPropertyUpdateGroup.
Groups can be nested. In that case, the deferral ends only after the outermost group has been ended.
Definition at line 245 of file qproperty.cpp.
|
friend |
Definition at line 549 of file qproperty.h.
|
friend |
Definition at line 555 of file qproperty.h.
|
friend |
Definition at line 561 of file qproperty.h.
|
Ends a property update group. If the outermost group has been ended, and deferred binding evaluations and notifications happen now.
Definition at line 265 of file qproperty.cpp.
|
friend |
|
friend |