QProperty 類是啓用自動特性綁定的模闆類。 更多...
| 頭: |
#include <QProperty>
|
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
|
| qmake: |
QT += core
|
| Since: | Qt 6.0 |
| 繼承: | QPropertyData |
此類 相等可比較 .
此類 相等可比較 with T.
| QProperty () | |
| QProperty (Functor && f ) | |
| QProperty (T && initialValue ) | |
| QProperty (const QPropertyBinding<T> & binding ) | |
| QProperty (const T & initialValue ) | |
| ~QProperty () | |
(從 6.2 起)
QPropertyNotifier
|
addNotifier (Functor f ) |
| QPropertyBinding<T> | binding () const |
| QPropertyChangeHandler<Functor> | onValueChanged (Functor f ) |
| QPropertyBinding<T> | setBinding (const QPropertyBinding<T> & newBinding ) |
(從 6.0 起)
QPropertyBinding<T>
|
setBinding (Functor f ) |
| bool | setBinding (const QUntypedPropertyBinding & newBinding ) |
| void | setValue (QProperty<T>::parameter_type newValue ) |
| void | setValue (QProperty<T>::rvalue_ref newValue ) |
(從 6.0 起)
QPropertyChangeHandler<Functor>
|
subscribe (Functor f ) |
| QPropertyBinding<T> | takeBinding () |
| QProperty<T>::parameter_type | value () const |
| QProperty<T> & | operator= (QProperty<T>::parameter_type newValue ) |
| QProperty<T> & | operator= (QProperty<T>::rvalue_ref newValue ) |
(從 6.2 起)
void
|
beginPropertyUpdateGroup () |
(從 6.2 起)
void
|
endPropertyUpdateGroup () |
QProperty<T> is one of the classes implementing Qt 可綁定特性 . 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.
注意: For QML, it's important to expose the QProperty in Q_PROPERTY with the BINDABLE keyword. As a result, the QML engine uses it as the bindable interface to set up the property binding. In turn, the binding can then be interacted with C++ via the normal API: QProperty<T>::onValueChanged, QProperty::takeBinding and QBindable::hasBinding If the property is BINDABLE, the engine will use the change-tracking inherent to the C++ property system for getting notified about changes, and it won't rely on signals being emitted.
賦值 newValue to this property and removes the property's associated binding, if present.
賦值 newValue to this property and returns a reference to this QProperty .
Constructs a property with a default constructed instance of T.
[explicit]
template <typename Functor> QProperty::
QProperty
(
Functor
&&
f
)
Constructs a property that is tied to the provided binding expression f . 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.
[explicit default]
QProperty::
QProperty
(
T
&&
initialValue
)
Move-Constructs a property with the provided initialValue .
[explicit]
QProperty::
QProperty
(const
QPropertyBinding
<
T
> &
binding
)
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.
[explicit default]
QProperty::
QProperty
(const
T
&
initialValue
)
Constructs a property with the provided initialValue .
銷毀特性。
[since 6.2]
template <typename Functor>
QPropertyNotifier
QProperty::
addNotifier
(
Functor
f
)
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.
該函數在 Qt 6.2 引入。
另請參閱 onValueChanged () 和 subscribe ().
Returns the binding expression that is associated with this property. A default constructed QPropertyBinding<T> will be returned if no such association exists.
另請參閱 setBinding ().
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.
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.
另請參閱 binding ().
[since 6.0]
template <typename Functor>
QPropertyBinding
<
T
> QProperty::
setBinding
(
Functor
f
)
Associates the value of this property with the provided functor f 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.
這是重載函數。
該函數在 Qt 6.0 引入。
另請參閱 Formulating a Property Binding .
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.
這是重載函數。
[since 6.0]
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. 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.
該函數在 Qt 6.0 引入。
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.
Returns the value of the property. This may evaluate a binding expression that is tied to this property, before returning the value.
另請參閱 setValue ().
[since 6.2]
void
beginPropertyUpdateGroup
()
標記特性更新組的開始。在此組中,改變特性既不會立即更新任何從屬特性,也不會觸發變化通知。代之這些將延遲,直到結束組通過調用 endPropertyUpdateGroup .
組可以嵌套。在此情況下,延遲纔結束,在最外層組已結束後。
注意: 改變通知纔發送,在受組影響的所有特性值都已更新到其新值後。這允許重新建立類不變體若需要更新多個特性,以阻止任何外部觀測器預告不一緻狀態。
該函數在 Qt 6.2 引入。
另請參閱 Qt::endPropertyUpdateGroup and QScopedPropertyUpdateGroup .
[since 6.2]
void
endPropertyUpdateGroup
()
結束特性更新組。若最外層組已結束,且延遲綁定評估和現在發生通知。
警告: 調用 endPropertyUpdateGroup 之前不調用 beginPropertyUpdateGroup 産生未定義行為。
該函數在 Qt 6.2 引入。
另請參閱 Qt::beginPropertyUpdateGroup and QScopedPropertyUpdateGroup .