QQmlParserStatus Class
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() マクロを使う必要があります。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.