- class QQmlParserStatus#
QQmlParserStatus
类提供有关 QML 解析器状态的更新。 更多…继承自:
QQuick3DObject
、QQuick3DTextureData
、QQuick3DRenderExtension
、QQuick3DInstancing
、QQuick3DGeometry
、QQuickItem
、QQuickRhiItem
、QQuickPaintedItem
、QQuickFramebufferObject
、QSeriesTheme
、QGraphTheme
、Q3DTheme
概述#
方法#
def
__init__()
虚函数#
def
classBegin()
注意
本文档可能包含自动从 C++ 转换为 Python 的代码片段。我们始终欢迎对代码片段的翻译做出贡献。如果您发现翻译问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告诉我们。
详细说明#
警告
本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。
QQmlParserStatus
为由QQmlEngine
实例化的类提供了在创建的关键点接收通知的机制。此类常用于优化目的,因为它可以在对象的所有属性都设置之后延迟执行耗时的操作。例如,QML的Text元素使用解析器状态来延迟文本布局,直到所有其属性都设置(我们不希望在text赋值时进行布局,然后当font赋值时重新布局,当width赋值时再次重新布局,依此类推)。
请注意,只有在由
QQmlEngine
实例化一个类时,才调用QQmlParserStatus
类的方法。如果您直接从C++中创建相同的类,这些方法将不会自动调用。为了避免这个问题,建议您从classBegin
而不是您类的初始创建开始延迟操作。这将仍然防止QML在初始绑定赋值期间的多次评估,但不会延迟从C++调用的操作。要使用
QQmlParserStatus
,您必须继承一个QObject派生类和QQmlParserStatus
,并使用Q_INTERFACES()宏。class MyObject(QObject, QQmlParserStatus): Q_OBJECT Q_INTERFACES(QQmlParserStatus) # public MyObject(QObject parent = None) # ... def classBegin(): def componentComplete():
- __init__()#
- abstract classBegin()#
在创建类之后调用,但在设置任何属性之前。
- abstract componentComplete()#
在导致此类实例化的根组件完成构建之后调用。此时,所有静态值和绑定值都已分配给该类。