Classes C++ importantes fournies par le module « Qt Qml »
Le Qt Qml module fournit des classes C++ qui implémentent le framework QML. Les clients peuvent utiliser ces classes pour interagir avec le runtime QML (par exemple, en injectant des données ou en appelant des méthodes sur des objets), et pour instancier une hiérarchie d’objets à partir d’un document QML. Le module Qt Qml fournit davantage d’API C++ que les classes répertoriées ici ; toutefois, celles-ci constituent les fondements du QML Runtime et les concepts essentiels de QML.
QML Runtime
Une application QML type dotée d’un point d’entrée C++ instanciera un ` QQmlEngine `, puis utilisera un ` QQmlComponent ` pour charger un document QML. Le moteur fournit un QQmlContext par défaut, qui servira de contexte d’évaluation de niveau supérieur pour l’évaluation des fonctions et des 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, à condition qu’aucune erreur ne se soit produite lors du chargement du document.
Le client peut souhaiter modifier l’ QQmlContext e 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 niveau supérieur.
Après avoir instancié l’objet, le client transfère généralement le contrôle à la boucle d’événements de l’application afin que les événements liés aux entrées utilisateur (tels que les clics de souris) puissent être transmis et gérés par l’application.
Remarque : le module Qt Quick fournit une classe pratique, QQuickView, qui met à disposition un QML Runtime 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 au sein duquel les expressions sont évaluées, et garantit que les propriétés des objets sont mises à jour correctement lorsque cela est nécessaire.
Un moteur ` QQmlEngine ` permet de configurer des paramètres globaux qui s’appliquent à tous les objets qu’il gère ; par exemple, le ` QNetworkAccessManager ` à utiliser pour les communications réseau et le chemin d’accès au fichier à utiliser pour le stockage persistant.
Consultez la documentation de la classe ` QQmlEngine ` pour obtenir des informations détaillées sur ce que propose 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 d’objets et l’évaluation d’expressions. Tous les objets sont instanciés dans un contexte particulier, et toutes les expressions évaluées pendant l’exécution d’une application le sont au sein d’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.
Consultez la documentation de la classe ` QQmlContext ` pour obtenir 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`, ainsi que sur la manière d’accéder au contexte d’un objet.
Instanciation dynamique d’objets et évaluation d’expressions
QQmlComponentL’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 pouvant être instanciés à l’exécution à l’aide d’un ` QQmlComponent `. Une instance de la classe ` ` peut être créée directement en C++, ou via la fonction ` Qt.createComponent()` dans du 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 permet de charger un document QML. Elle nécessite un objet QQmlEngine afin d’instancier la hiérarchie des objets définis dans le document QML.
Consultez la documentation de la classe QQmlComponent pour obtenir des informations détaillées sur l’utilisation de QQmlComponent.
La classe `QQmlExpression`
La classe ` QQmlExpression ` permet aux clients d’évaluer des expressions JavaScript depuis le C++, en utilisant un contexte d’évaluation QML spécifique. Cela permet notamment aux clients d’accéder à des objets QML par leur identifiant. Le résultat de l’évaluation est renvoyé sous la forme d’un ` QVariant`, et les règles de conversion sont définies par le moteur QML.
Consultez la documentation de la classe ` QQmlExpression ` pour obtenir des informations détaillées sur l’utilisation d’un ` 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.