PySide6.QtQuickControls2.QQuickAttachedPropertyPropagator

class QQuickAttachedPropertyPropagator

QQuickAttachedPropertyPropagator 类提供了一种传播附加属性的方法。更多

PySide6.QtQuickControls2.QQuickAttachedPropertyPropagator 的继承图

概要

方法

虚拟方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

在QML中,可以将属性和信号处理程序附加到对象上。提供附加属性详细介绍了如何公开您自己的C++附加类型。

QQuickAttachedPropertyPropagator 提供了一个API,用于将附加属性从父对象传播到其子对象,类似于字体和调色板的传播。它支持通过项目、弹出窗口和窗口进行传播。

如果属性的传播不重要,考虑使用C++或QML单例代替,因为它更适合这种使用场景,并且更高效,因为它只需要一个QObject。

要使用 QQuickAttachedPropertyPropagator

  • 从中派生

  • 在构造函数中调用 initialize()

  • 根据需要为每个属性定义设置/继承/传播/重置函数

  • 重新实现 attachedParentChange() 以处理属性继承

  • 实现一个静态的qmlAttachedProperties函数,并将该类型声明为带有QML_ELEMENT和QML_ATTACHED的附加QML类型,如提供附加属性中所述

有关深入演示此内容的示例,请参见 Qt Quick Controls - 附加样式属性示例

__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent构造一个QQuickAttachedPropertyPropagator

parent 将用于查找此对象的 attached parent

派生类应在它们的构造函数中调用 initialize()

attachedChildren()
Return type:

.list of QQuickAttachedPropertyPropagator

此函数返回此附加对象的附加子对象。

附加的子项用于传播属性值时使用:

attachedParent()
Return type:

QQuickAttachedPropertyPropagator

此函数返回此附加对象的附加父对象。

附加的父级用于继承属性值:

attachedParentChange(newParent, oldParent)
Parameters:

每当此QQuickAttachedPropertyPropagator的附加父级从oldParent更改为newParent时,都会调用此函数。

子类应重新实现此函数以从newParent继承附加属性。

initialize()

查找并设置此附加对象的附加父对象,然后对其子对象执行相同的操作。必须在附加对象构建时调用此操作,以便传播工作。

在调用此函数之前读取全局/默认值可能很有用。例如,在调用initialize()之前,Imagine样式会检查一个静态的“globalsInitialized”标志,以查看是否应从QSettings读取默认值。该文件中的值构成了任何未显式设置的附加属性值的基础。