QQmlParserStatus Class
QQmlParserStatusクラスは、QMLパーサーの状態の更新を提供します。詳細...
Header: | #include <QQmlParserStatus> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake: | QT += qml |
Inherited By: |
パブリック関数
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() マクロを使う必要があります。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。