构建一个QML应用程序
在构建一个C++控制台应用程序中,我们展示了简单控制台应用程序的CMakeLists.txt文件。现在,我们将创建一个使用Qt Quick模块的QML应用程序。
这是完整的项目文件
cmake_minimum_required(VERSION 3.16) project(hello VERSION 1.0 LANGUAGES CXX) find_package(Qt6 6.2 COMPONENTS Quick Gui REQUIRED) qt_standard_project_setup(REQUIRES 6.5) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) qt_add_executable(myapp main.cpp ) qt_add_qml_module(myapp URI hello QML_FILES main.qml FramedImage.qml RESOURCES img/world.png ) target_link_libraries(myapp PRIVATE Qt6::Gui Qt6::Quick)
让我们来看看我们所做的更改。在find_package
调用中,我们将Core
替换为Quick
。这将定位到Qt6Quick
模块,并提供我们稍后链接的Qt6::Quick
目标。
find_package(Qt6 6.2 COMPONENTS Quick Gui REQUIRED)
我们调用
qt_standard_project_setup(REQUIRES 6.5) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)
请注意,应用程序仍然会链接到
qt_add_executable创建并最终确定应用程序目标
qt_add_executable(myapp main.cpp )
qt_add_qml_module传递可执行目标的指定,URI,模块版本,以及一个QML文件列表,以确保myapp成为一个QML模块。这在资源文件系统中将QML文件放置到qrc:/qt/qml/${URI}
。此外,
qt_add_qml_module(myapp URI hello QML_FILES main.qml FramedImage.qml RESOURCES img/world.png )
通过添加引用的资源,它们将自动添加到应用程序中,其根路径与QML文件相同的路径(也位于资源文件系统中)。通过保持资源系统中的路径与源和构建目录中的一致,我们确保图像总是可以被找到,因为它是相对于FramedImage.qml进行解析的。如果我们从那里加载main.qml,它将引用资源文件系统中的图像;如果我们使用
在
target_link_libraries(myapp PRIVATE Qt6::Gui Qt6::Quick)
© 2024 Qt公司有限公司。此处包含的文档贡献均为各自所有者的版权。所提供的文档受《由自由软件基金会发布的GNU自由文档许可证第1.3版》的条款约束。GNU自由文档许可证。