Création d'une application QML

Dans la section « Création d’une application console C++ », nous avons présenté le fichier CMakeLists.txt d’une application console simple. Nous allons maintenant créer une application QML qui utilise le 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 modifications que nous avons apportées 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 ` auxquelles nous effectuerons la liaison ultérieurement. CMake chargera également 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 d’une version plus récente.

qt_standard_project_setup(REQUIRES 6.5)

La commande qt_standard_project_setup() définit les paramètres par défaut à l’échelle du projet pour une application Qt classique. 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. Grâce à la politique QTP0001, le module sera accessible à l’adresse qrc:/qt/qml/hello dans le système de fichiers de ressources, qrc:/qt/qml/ figurant parmi les chemins d’importation par défaut du moteur QML.

La fonction`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 concernant les fichiers ` .qml ` via `qmllint`.

target_link_libraries(helloworld PRIVATE Qt6::Quick)

Dans la commande ` target_link_libraries() `, nous lions notre exécutable à ` Qt6::Quick`. Cela entraîne automatiquement la liaison aux cibles dont ` Qt6::Quick ` dépend, notamment ` 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.