Initialisation du QML Runtime
documents QML sont chargés et exécutés par le QML Runtime. Ce dernier donne également accès à d'autres modules et types Qml de Qt ou de tiers.
De plus, le framework Qt fournit l’outil « qml », qui charge les fichiers « .qml ». Cet outil est utile pour développer et tester du code QML sans avoir à écrire d’application C++ pour charger le QML Runtime.
Pour exécuter une application utilisant QML, celle-ci doit appeler le QML Runtime. Pour appeler le QML Runtime :
- Créez une application Qt C++.
L'application doit charger l'QQmlEngine de l'une des manières suivantes :
- Charger le fichier QML via une instance d'QQuickView.
- Créer une instance de ` QQmlEngine ` et charger les fichiers QML à l'aide de ` QQmlComponent`.
- Créer une application Qt Bridge.
Pour plus de détails, consultez la documentation de Qt Bridge :
- Utilisez l’outil «
qml» pour charger et exécuter directement des fichiers QML.Cet outil est utile pour développer et tester du code QML sans avoir à écrire d'application pour charger le QML Runtime. Pour plus de détails, consultez la section « Prototypage avec l'outil QML Runtime ».
Initialisation de l'QML Runtime dans les applications C++
Initialisation avec QQuickView
QQuickView est une classe basée sur l’ QWindow qui permet de charger des fichiers QML. Par exemple, s’il existe un fichier QML, application.qml, cela ressemblera à ceci :
import QtQuick
Rectangle { width: 100; height: 100; color: "red" }Il peut être chargé dans le fichier ` main.cpp ` d'une application Qt comme suit :
#include <QGuiApplication>
#include <QQuickView>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView view;
view.setSource(QUrl::fromLocalFile("application.qml"));
view.show();
return app.exec();
}Cela crée une vue basée sur QWindow qui affiche le contenu de application.qml.
Fichiers de compilation
Utilisez la commande « find_package() » pour localiser le composant de module requis dans le paquet « Qt6 » :
find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)Pour plus de détails, consultez la présentation « Compilation avec CMake ».
Pour configurer le module en vue d'une compilation avec qmake, ajoutez le module en tant que valeur de la variable QT dans le fichier .pro du projet :
QT += quickPour plus d’informations, consultez la section Création de fichiers de projet.
Création directe d’un QQmlEngine
Si application.qml ne contient aucun composant graphique, ou s’il est préférable d’éviter d’utiliser QQuickView pour d’autres raisons, l’ QQmlEngine peut être instancié directement. Dans ce cas, application.qml est chargé en tant qu’instance de QQmlComponent plutôt que d’être placé dans une vue :
#include <QGuiApplication>
#include <QQmlEngine>
#include <QQmlContext>
#include <QQmlComponent>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlEngine engine;
QQmlContext *objectContext = new QQmlContext(engine.rootContext());
QQmlComponent component(&engine, "application.qml");
QObject *object = component.create(objectContext);
// ... delete object and objectContext when necessary
return app.exec();
}Si vous n’utilisez aucun élément graphique provenant de Qt Quick, vous pouvez remplacer QGuiApplication par QCoreApplication dans le code ci-dessus. De cette manière, vous pouvez utiliser QML comme langage sans aucune dépendance vis-à-vis du Qt GUI module.
© 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.