QQmlParserStatus Class
La classe `QQmlParserStatus` fournit des informations sur l'état de l'analyseur QML. En savoir plus...
| En-tête : | #include <QQmlParserStatus> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake : | QT += qml |
| Hérité par : |
Fonctions publiques
| virtual void | classBegin() = 0 |
| virtual void | componentComplete() = 0 |
Description détaillée
QQmlParserStatus fournit un mécanisme permettant aux classes instanciées par un « QQmlEngine » de recevoir des notifications à des moments clés de leur création.
Cette classe est souvent utilisée à des fins d'optimisation, car elle permet de différer une opération coûteuse jusqu'à ce que toutes les propriétés d'un objet aient été définies. Par exemple, l’élément Text de QML utilise l’état du parseur pour reporter la mise en page du texte jusqu’à ce que toutes ses propriétés aient été définies (nous ne voulons pas effectuer la mise en page lorsque text est attribué, puis la refaire lorsque font est attribué, puis encore une fois lorsque width est attribué, et ainsi de suite).
Notez que les méthodes de `QQmlParserStatus` ne sont appelées que lorsqu’une classe est instanciée par un ` QQmlEngine`. Si vous créez la même classe directement depuis C++, ces méthodes ne seront pas appelées automatiquement. Pour éviter ce problème, il est recommandé de commencer à différer les opérations à partir de ` classBegin ` plutôt qu’à partir de la création initiale de votre classe. Cela permettra toujours d’éviter les réévaluations multiples lors de l’affectation initiale des liaisons dans QML, mais ne différera pas les opérations invoquées depuis le C++.
Pour utiliser QQmlParserStatus, vous devez hériter à la fois d’une classe dérivée de QObject et de QQmlParserStatus, puis utiliser la macro Q_INTERFACES().
class MyObject : public QObject, public QQmlParserStatus
{
Q_OBJECT
Q_INTERFACES(QQmlParserStatus)
public:
MyObject(QObject *parent = nullptr);
// ...
void classBegin() override;
void componentComplete() override;
};Documentation des fonctions membres
[pure virtual] void QQmlParserStatus::classBegin()
Appelée après la création de la classe, mais avant que des propriétés aient été définies.
[pure virtual] void QQmlParserStatus::componentComplete()
Appelée une fois que la construction du composant racine à l'origine de cette instanciation est terminée. À ce stade, toutes les valeurs statiques et les valeurs de liaison ont été attribuées à la classe.
© 2026 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.