QQmlParserStatus 类
QQmlParserStatus 类提供关于 QML 解析器状态的更新。更多...
头部 | #include <QQmlParserStatus> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake | QT += qml |
继承自 |
公共函数
virtual void | classBegin() = 0 |
virtual void | componentComplete() = 0 |
详细描述
QQmlParserStatus 提供了一种机制,用于在某些关键点通知由 QQmlEngine 实例化的类的创建状态。
这个类常用于优化目的,因为它允许你在所有属性都设置在对象上之后再执行耗时的操作。例如,QML 的 Text 元素使用解析器状态来延迟文本布局,直到所有属性都已设置(我们不想在 text 被分配时布局,然后在 font 被分配时重新布局,当 width 被分配时再次布局,等等)。
请注意,QQmlParserStatus 方法仅在类由 QQmlEngine 实例化时调用。如果您直接从 C++ 创建相同的类,则这些方法将不会自动调用。为了避免这个问题,建议从 classBegin 开始延迟操作,而不是从您类的初始创建开始。这仍然可以防止在 QML 初始绑定赋值时的多次评估,但不会延迟从 C++ 触发的操作。
要使用 QQmlParserStatus,您必须继承一个 QObject 派生类和 QQmlParserStatus,并使用 Q_INTERFACES() 宏。
© 2024 Qt公司有限公司。本文件中包含的文档贡献享有各自所有者的版权。提供的文档根据自由软件基金会发布的GNU自由文档许可证第1.3版授予许可。