QUntypedBindable 类
QUntypedBindable 是一个跨越所有类型 T
的可绑定属性(如 QProperty<T>
和 QObjectBindableProperty
)的统一接口。 更多...
头文件 | #include <QUntypedBindable> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
自 | Qt 6.0 |
继承自 |
公开函数
QUntypedBindable() | |
QUntypedBindable(Property *property) | |
QPropertyNotifier | addNotifier(Functor f) |
QUntypedPropertyBinding | binding() const |
bool | hasBinding() const |
(since 6.1) bool | isReadOnly() const |
bool | isValid() const |
QUntypedPropertyBinding | makeBinding(const QPropertyBindingSourceLocation &location = QT_PROPERTY_DEFAULT_BINDING_LOCATION) const |
(since 6.2) QMetaType | metaType() const |
QPropertyChangeHandler<Functor> | onValueChanged(Functor f) const |
bool | setBinding(const QUntypedPropertyBinding &binding) |
QPropertyChangeHandler<Functor> | subscribe(Functor f) const |
(since 6.1) QUntypedPropertyBinding | takeBinding() |
详细说明
QUntypedBindable 是一个完全类型无关的通用接口,用于包装可绑定属性。您可以使用它来交互属性,而不必了解它们的类型或关心它们是什么类型的可绑定属性(例如 QProperty 或 QObjectBindableProperty)。对于大多数使用情况,应优先使用 QBindable<T>(它是通过对属性实现的泛型,但具有固定类型)。
成员函数说明
[constexpr noexcept]
QUntypedBindable::QUntypedBindable()
默认构造一个 QUntypedBindable。它处于无效状态。
另请参阅isValid().
template <typename Property> QUntypedBindable::QUntypedBindable(Property *property)
从属性 property 构造一个 QUntypedBindable。如果 Property 是 const,则 QUntypedBindable 将为只读。如果 property 是 null,则 QUntypedBindable 将是无效的。
另请参阅isValid() 和 isReadOnly().
模板 <typename Functor> QPropertyNotifier QUntypedBindable::addNotifier(Functor f)
将 f 安装为变更处理器。每当底层属性更改时,只要保持返回的 QPropertyNotifier
和属性存活,就会调用 f。
在某些情况下,此方法比 onValueChanged() 更易于使用,因为返回的对象不是模板。因此,它可以更容易地存储,例如作为类的一个成员。
另请参阅onValueChanged() 和 subscribe。
QUntypedPropertyBinding QUntypedBindable::binding() const
如果存在任何底层属性的绑定,则返回该属性的绑定,否则返回默认构造的 QUntypedPropertyBinding。
另请参阅setBinding() 和 hasBinding。
bool QUntypedBindable::hasBinding() const
如果底层属性具有绑定,则返回 true
。
[since 6.1]
bool QUntypedBindable::isReadOnly() const
如果 QUntypedBindable 是只读的,则返回 true。
此功能是在 Qt 6.1 中引入的。
bool QUntypedBindable::isValid() const
如果 QUntypedBindable 有效,则返回 true。在无效的 QUntypedBindable 上调用的方法通常没有效果,除非另有说明。
QUntypedPropertyBinding QUntypedBindable::makeBinding(const QPropertyBindingSourceLocation &location = QT_PROPERTY_DEFAULT_BINDING_LOCATION) const
使用指定的源 location 创建绑定,返回底层属性的值。
[since 6.2]
QMetaType QUntypedBindable::metaType() const
返回创建 QUntypedBindable 的属性的元类型。如果绑定无效,则返回无效的元类型。
此函数是在 Qt 6.2 中引入的。
另请参阅isValid().
模板 <typename Functor> QPropertyChangeHandler<Functor> QUntypedBindable::onValueChanged(Functor f) const
将 f 安装为变更处理器。每当底层属性更改时,只要保持返回的 QPropertyChangeHandler
和属性存活,就会调用 f。每个值更改时,处理器要么立即调用,要么延迟调用,具体取决于上下文。
另请参阅onValueChanged() 和 subscribe。
bool QUntypedBindable::setBinding(const QUntypedPropertyBinding &binding)
将底层属性的绑定设置为 binding。如果 QUntypedBindable 是只读的、null 或如果 binding 的类型与底层属性的类型不匹配,则此操作不会产生任何效果。
当绑定成功设置时返回 true
。
另请参阅binding。
模板 <typename Functor> QPropertyChangeHandler<Functor> QUntypedBindable::subscribe(Functor f) const
行为类似于调用 f 然后调用 onValueChanged(f)
,
另请参阅 onValueChanged().
[自6.1起]
QUntypedPropertyBinding QUntypedBindable::takeBinding()
从属性中移除当前设置的绑定并返回它。如果没有设置绑定,则返回默认构造的 QUntypedPropertyBinding。
此功能是在 Qt 6.1 中引入的。
© 2024 The Qt Company Ltd. 本文档中所包含的贡献者是各自版权所有者。本提供的文档是根据自由软件基金会发布的 GNU自由文档许可协议版本1.3 许可的。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。