QQmlParserStatus Class
Die Klasse QQmlParserStatus liefert Aktualisierungen des QML-Parser-Status. Mehr...
Kopfzeile: | #include <QQmlParserStatus> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake: | QT += qml |
Vererbt von: |
Öffentliche Funktionen
virtual void | classBegin() = 0 |
virtual void | componentComplete() = 0 |
Detaillierte Beschreibung
QQmlParserStatus bietet einen Mechanismus für Klassen, die von QQmlEngine instanziiert werden, um Benachrichtigungen an Schlüsselpunkten ihrer Erstellung zu erhalten.
Diese Klasse wird oft zu Optimierungszwecken verwendet, da sie es ermöglicht, eine teure Operation aufzuschieben, bis alle Eigenschaften eines Objekts gesetzt sind. Das Element Text von QML verwendet beispielsweise den Parser-Status, um das Textlayout aufzuschieben, bis alle Eigenschaften gesetzt sind (wir wollen nicht layouten, wenn text
zugewiesen ist, und dann relayout, wenn font
zugewiesen ist, und wieder relayout, wenn width
zugewiesen ist, und so weiter).
Beachten Sie, dass die QQmlParserStatus-Methoden nur dann aufgerufen werden, wenn eine Klasse von einem QQmlEngine instanziiert wird. Wenn Sie dieselbe Klasse direkt von C++ aus erstellen, werden diese Methoden nicht automatisch aufgerufen. Um dieses Problem zu vermeiden, empfiehlt es sich, die Operationen von classBegin aus aufzuschieben, anstatt sie bereits bei der Erstellung der Klasse aufzurufen. Dies verhindert immer noch mehrfache Neubewertungen während der anfänglichen Bindungszuweisung in QML, aber es werden keine Operationen aufgeschoben, die von C++ aus aufgerufen werden.
Um QQmlParserStatus zu verwenden, müssen Sie sowohl eine von QObject abgeleitete Klasse als auch QQmlParserStatus erben und das Makro Q_INTERFACES() verwenden.
Dokumentation der Mitgliedsfunktionen
[pure virtual]
void QQmlParserStatus::classBegin()
Wird nach der Erstellung der Klasse aufgerufen, aber bevor irgendwelche Eigenschaften festgelegt wurden.
[pure virtual]
void QQmlParserStatus::componentComplete()
Wird aufgerufen, nachdem die Wurzelkomponente, die diese Instanziierung verursacht hat, die Konstruktion abgeschlossen hat. Zu diesem Zeitpunkt sind der Klasse alle statischen Werte und Bindungswerte zugewiesen worden.
© 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.