Erstellen einer QML-Anwendung
In Erstellen einer C++-Konsolenanwendung haben wir die Datei CMakeLists.txt für eine einfache Konsolenanwendung gezeigt. Wir werden nun eine QML-Anwendung erstellen, 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)
Gehen wir nun die Änderungen durch, 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 wird daher das Modul Qt6Quick
laden und die Ziele Qt6::Quick
bereitstellen, gegen die wir später linken. CMake lädt auch automatisch Pakete, von denen Quick abhängt, wie Qt6Qml
, das den Befehl qt_add_qml_module() definiert, den wir weiter unten verwenden.
Wir benötigen außerdem Qt 6.5 oder neuer.
qt_standard_project_setup(REQUIRES 6.5)
Der Befehl qt_standard_project_setup() setzt projektweite Standardeinstellungen für eine typische Qt-Anwendung. Durch Hinzufügen von REQUIRES 6.5
aktivieren wir die Richtlinie QTP0001, die ein Standard-Ressourcen-Präfix für QML-Module definiert, die mit qt_add_qml_module() erstellt wurden.
... qt_add_qml_module(helloworld URI hello QML_FILES main.qml FramedImage.qml RESOURCES img/world.png )
qt_add_qml_module() fügt der ausführbaren Datei ein QML-Modul namens hello
hinzu, das aus zwei QML-Dateien und einem Bild besteht. Aufgrund von QTP0001 wird das Modul unter qrc:/qt/qml/hello
im Ressourcendateisystem verfügbar sein, wobei qrc:/qt/qml/
einer der Standardimportpfade der QML-Engine ist.
qt_add_qml_module() führt auch Optimierungsschritte durch, wie das Ausführen des QML-Skript-Compilers und das Definieren eines helloworld_qmllint
-Ziels, das Sie ausführen können, um zusätzliche Vorschläge zu den .qml
-Dateien von qmllint zu erhalten.
target_link_libraries(helloworld PRIVATE Qt6::Quick)
Mit dem Befehl target_link_libraries()
linken wir unsere ausführbare Datei gegen Qt6::Quick
. Dadurch wird automatisch auch gegen Ziele gelinkt, von denen Qt6::Quick
abhängt, einschließlich Qt6::Qml
und Qt6::Core
.
© 2025 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.