QUntypedBindable 类

QUntypedBindable 是一个跨越所有类型 T 的可绑定属性(如 QProperty<T>QObjectBindableProperty)的统一接口。 更多...

头文件 #include <QUntypedBindable>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
Qt 6.0
继承自

QBindable

公开函数

QUntypedBindable()
QUntypedBindable(Property *property)
QPropertyNotifieraddNotifier(Functor f)
QUntypedPropertyBindingbinding() const
boolhasBinding() const
(since 6.1) boolisReadOnly() const
boolisValid() const
QUntypedPropertyBindingmakeBinding(const QPropertyBindingSourceLocation &location = QT_PROPERTY_DEFAULT_BINDING_LOCATION) const
(since 6.2) QMetaTypemetaType() const
QPropertyChangeHandler<Functor>onValueChanged(Functor f) const
boolsetBinding(const QUntypedPropertyBinding &binding)
QPropertyChangeHandler<Functor>subscribe(Functor f) const
(since 6.1) QUntypedPropertyBindingtakeBinding()

详细说明

QUntypedBindable 是一个完全类型无关的通用接口,用于包装可绑定属性。您可以使用它来交互属性,而不必了解它们的类型或关心它们是什么类型的可绑定属性(例如 QPropertyQObjectBindableProperty)。对于大多数使用情况,应优先使用 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. 在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。