部署 QML 应用程序
本页面提供了关于如何部署 QML 应用程序的信息。内容涵盖使用Qt Creator 进行部署,以及使用 Qt 资源系统将 QML 文件和其他资源打包到应用程序可执行文件中。
使用Qt Creator
Qt Creator 可将 QML 应用程序部署并打包到各种平台。对于移动设备,Qt Creator 可以直接将应用程序打包为相应的平台包格式,例如 APK。
当您在目标平台上运行应用程序时,应用程序需要访问 QML 库的位置。如果您使用qmake,则环境变量QT_INSTALL_QML 会指向这些库的位置。Qt 安装程序会将 QML 库安装在以下目录中:<version>/ <COMPILER>/qml 。
在 Qml 中使用 Qt 资源系统
Qt 资源系统允许将资源文件作为二进制文件存储在应用程序可执行文件中。Qt Qml 资源系统适用于 Qml 应用程序,因为它允许通过资源系统 URI 方案来引用 Qml 文件和其他资源(如图像和声音文件),而无需使用文件系统资源的相对或绝对路径。
注意:使用 资源系统意味着,每当 QML 源文件发生更改时,通常必须重新编译应用程序可执行文件,以更新软件包中的资源。
CMake QML 模块 API会自动将您的 QML 文件放置到资源系统中。要访问这些文件,请将您的主 QML 文件作为资源或使用qrc 方案的 URL 加载。QML 文件在资源系统中的路径可通过将以下内容拼接在一起获得:
- 您传递给 `qt_add_qml_module` 的 `
RESOURCE_PREFIX`。 /qt/qml,若您未向`qt_add_qml_module` 传递 `RESOURCE_PREFIX`,且QTP0001策略设置为 `NEW`。/,若未向`qt_add_qml_module` 传递 `RESOURCE_PREFIX`,且QTP0001策略设置为 `not`,则应设置为 `NEW`。- 如果您未向 qt_add_qml_module 传递
NO_RESOURCE_TARGET_PATH:则您传递给qt_add_qml_module的URI中,所有点号将被替换为斜杠。
例如,名为My.Own.Module 的模块位于:
:/qt/qml/My/Own/Module/如果您将/qt/qml指定为RESOURCE_PREFIX,或者您未传入RESOURCE_PREFIX且QTP0001策略设置为NEW。:/My/Own/Module/如果您已将/指定为RESOURCE_PREFIX,或者您未通过RESOURCE_PREFIX验证,且QTP0001策略未设置为NEW。:/Some/Prefix/My/Own/Module/如果您将Some/Prefix/指定为RESOURCE_PREFIX:/如果您已指定NO_RESOURCE_TARGET_PATH
完成此设置后,QML中通过相对路径指定的所有文件都将从资源系统中加载。资源系统对QML层而言是完全透明的;这意味着所有QML代码都应使用相对路径引用资源文件,而不应使用qrc 这种命名方案。该方案仅应由C++代码用于引用资源文件。
相关信息
© 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.