Erstellen einer QML-Anwendung
Im Abschnitt „Erstellen einer C++-Konsolenanwendung“ haben wir die Datei „CMakeLists.txt“ für eine einfache Konsolenanwendung vorgestellt. Nun erstellen wir eine QML-Anwendung, die das Qt Quick Modul verwendet.
Hier ist die vollständige Projektdatei:
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)Sehen wir uns die Änderungen an, die wir im Vergleich zur Konsolenanwendung „ CMakeLists.txt “ vorgenommen haben:
...
find_package(Qt6 6.5 COMPONENTS Quick REQUIRED)Im Aufruf von „ find_package() “ ersetzen wir „ Core “ durch „ Quick “. CMake lädt daher das Modul „ Qt6Quick “ und stellt die Ziele „ Qt6::Quick “ bereit, die wir später einbinden. CMake lädt außerdem automatisch Pakete, von denen „Quick“ abhängt, wie beispielsweise „ Qt6Qml “, das den Befehl „qt_add_qml_module()“ definiert, den wir weiter unten verwenden.
Außerdem benötigen wir Qt 6.5 oder neuer.
qt_standard_project_setup(REQUIRES 6.5)Der Befehl `qt_standard_project_setup() ` legt projektweite Standardeinstellungen für eine typische Qt-Anwendung fest. Durch Hinzufügen von ` REQUIRES 6.5` aktivieren wir die Richtlinie `QTP0001`, die ein Standard-Ressourcenpräfix für QML-Module definiert, die mit `qt_add_qml_module()` erstellt werden.
...
qt_add_qml_module(helloworld
URI hello
QML_FILES
main.qml
FramedImage.qml
RESOURCES
img/world.png
)qt_add_qml_module() fügt dem ausführbaren Programm ein QML-Modul namens „ hello “ hinzu, das aus zwei QML-Dateien und einem Bild besteht. Aufgrund von QTP0001 ist das Modul im Ressourcen-Dateisystem unter „ qrc:/qt/qml/hello “ verfügbar, wobei „ qrc:/qt/qml/ “ einer der Standard-Importpfade der QML-Engine ist.
qt_add_qml_module() führt außerdem Optimierungsschritte durch, wie das Ausführen des QML-Skript-Compilers und das Definieren eines Ziels „ helloworld_qmllint “, das Sie ausführen können, um zusätzliche Vorschläge zu den Dateien unter .qml von qmllint zu erhalten.
target_link_libraries(helloworld PRIVATE Qt6::Quick)Im Befehl „ target_link_libraries() “ verknüpfen wir unsere ausführbare Datei mit „ Qt6::Quick “. Dadurch werden automatisch auch Ziele verknüpft, von denen „ Qt6::Quick “ abhängt, darunter „ Qt6::Qml “ und „ 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.