Construire une application QML
Dans Construire une application console C++, nous avons montré le fichier CMakeLists.txt pour une application console simple. Nous allons maintenant créer une application QML qui utilise le module Qt Quick module.
Voici le fichier de projet complet :
cmake_minimum_required(VERSION 3.16)
project(helloworld VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 6.5 COMPONENTS Quick REQUIRED)
qt_standard_project_setup(REQUIRES 6.5)
qt_add_executable(helloworld
main.cpp
)
qt_add_qml_module(helloworld
URI hello
QML_FILES
main.qml
FramedImage.qml
RESOURCES
img/world.png
)
target_link_libraries(helloworld PRIVATE Qt6::Quick)Passons en revue les changements que nous avons apportés par rapport à l'application console CMakeLists.txt:
... find_package(Qt6 6.5 COMPONENTS Quick REQUIRED)
Dans l'appel à find_package(), nous remplaçons Core par Quick. CMake chargera donc le module Qt6Quick et fournira les cibles Qt6::Quick que nous lierons plus tard. CMake chargera aussi automatiquement les paquets dont Quick dépend, comme Qt6Qml, qui définit la commande qt_add_qml_module() que nous utilisons ci-dessous.
Nous avons également besoin de Qt 6.5 ou plus récent.
qt_standard_project_setup(REQUIRES 6.5)
La commande qt_standard_project_setup() définit les valeurs par défaut de l'ensemble du projet pour une application Qt typique. En ajoutant REQUIRES 6.5, nous activons la politique QTP0001, qui définit un préfixe de ressource par défaut pour les modules QML créés par qt_add_qml_module().
...
qt_add_qml_module(helloworld
URI hello
QML_FILES
main.qml
FramedImage.qml
RESOURCES
img/world.png
)qt_add_qml_module() ajoute à l'exécutable un module QML nommé hello, composé de deux fichiers QML et d'une image. En raison de QTP0001, le module sera disponible à l'adresse qrc:/qt/qml/hello dans le système de fichiers de ressources, qrc:/qt/qml/ étant l'un des chemins d'importation par défaut du moteur QML.
qt_add_qml_module() effectue également des étapes d'optimisation telles que l'exécution du compilateur de scripts QML et la définition d'une cible helloworld_qmllint que vous pouvez exécuter pour obtenir des suggestions supplémentaires sur les fichiers .qml de la part de qmllint.
target_link_libraries(helloworld PRIVATE Qt6::Quick)
Dans la commande target_link_libraries(), nous lions notre exécutable à Qt6::Quick. Cela permet également de lier automatiquement les cibles dont dépend Qt6::Quick, y compris Qt6::Qml et Qt6::Core.
© 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.