Classes C++ importantes fournies par le module Qt Qml
Le module Qt Qml fournit des classes C++ qui mettent en œuvre le cadre QML. Les clients peuvent utiliser ces classes pour interagir avec l'exécution de QML (par exemple, en injectant des données ou en invoquant des méthodes sur des objets) et pour instancier une hiérarchie d'objets à partir d'un document QML. Le module Qt Qml fournit plus d'API C++ que les seules classes listées ici, mais ces dernières constituent les fondations du runtime QML et les concepts de base de QML.
QML Runtime
Une application QML typique avec un point d'entrée C++ instanciera un QQmlEngine et utilisera ensuite un QQmlComponent pour charger un document QML. Le moteur fournit un QQmlContext par défaut qui sera le contexte d'évaluation de premier niveau utilisé pour évaluer les fonctions et les expressions définies dans le document QML. La hiérarchie d'objets définie dans le document QML sera instanciée en appelant la fonction create() de l'instance QQmlComponent, en supposant qu'aucune erreur n'ait été rencontrée lors du chargement du document.
Le client peut souhaiter modifier l'instance QQmlContext fournie par le moteur, en injectant des propriétés ou des objets dans le contexte. Il peut appeler la fonction QQmlEngine::rootContext() pour accéder au contexte de haut niveau.
Après avoir instancié l'objet, le client transmet généralement le contrôle à la boucle d'événements de l'application afin que les événements d'entrée de l'utilisateur (comme les clics de souris) puissent être transmis et gérés par l'application.
Note : Le module Qt Quick fournit une classe de commodité, QQuickView, qui fournit un runtime QML et une fenêtre visuelle pour l'affichage d'une application QML.
La classe QQmlEngine
La classe QQmlEngine fournit un moteur capable de gérer une hiérarchie d'objets définie dans un document QML. Elle fournit un contexte QML racine dans lequel les expressions sont évaluées et garantit que les propriétés des objets sont correctement mises à jour lorsque cela est nécessaire.
Une classe QQmlEngine permet de configurer des paramètres globaux qui s'appliquent à tous les objets qu'elle gère ; par exemple, l'adresse QNetworkAccessManager à utiliser pour les communications réseau et le chemin d'accès au fichier à utiliser pour le stockage permanent.
Voir la documentation de la classe QQmlEngine pour obtenir des informations détaillées sur les fonctionnalités de la classe QQmlEngine et sur la manière dont elle peut être utilisée dans une application.
La classe QQmlContext
La classe QQmlContext fournit un contexte pour l'instanciation des objets et l'évaluation des expressions. Tous les objets sont instanciés dans un contexte particulier, et toutes les expressions évaluées pendant l'exécution d'une application sont évaluées dans un contexte particulier. Ce contexte définit la manière dont les symboles sont résolus, et donc les valeurs sur lesquelles l'expression opère.
Voir la documentation de la classe QQmlContext pour des informations détaillées sur la manière de modifier le contexte d'évaluation d'un objet en ajoutant ou en supprimant des propriétés d'un QQmlContext, et sur la manière d'accéder au contexte d'un objet.
Instanciation dynamique d'objets et évaluation d'expressions
L'instanciation dynamique d'objets et l'évaluation dynamique d'expressions sont deux concepts fondamentaux de QML. Les documents QML définissent des types d'objets qui peuvent être instanciés au moment de l'exécution à l'aide d'un QQmlComponent. Une instance de la classe QQmlComponent peut être créée directement en C++ ou via la fonction Qt.createComponent() dans un code QML impératif. Des expressions arbitraires peuvent être calculées en C++ via la classe QQmlExpression, et ces expressions peuvent interagir directement avec le contexte QML.
La classe QQmlComponent
La classe QQmlComponent peut être utilisée pour charger un document QML. Elle nécessite une adresse QQmlEngine afin d'instancier la hiérarchie des objets définis dans le document QML.
Voir la documentation de la classe QQmlComponent pour des informations détaillées sur l'utilisation de la classe QQmlComponent.
La classe QQmlExpression
La classe QQmlExpression permet aux clients d'évaluer des expressions JavaScript à partir de C++, en utilisant un contexte d'évaluation QML particulier. Cela permet aux clients d'accéder aux objets QML par leur identifiant, par exemple. Le résultat de l'évaluation est renvoyé sous forme de QVariant, et les règles de conversion sont définies par le moteur QML.
Voir la documentation de la classe QQmlExpression pour des informations détaillées sur l'utilisation de QQmlExpression dans une application.
Utilisation des classes dans les applications QML
Ces pages décrivent comment créer des applications QML qui interagissent avec les classes C++ :
© 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.