qt_add_qml_preview
为本身并非 QML 模块的可执行文件配置 qmlpreview 支持。
该命令自 Qt 6.12 起引入。
注意:此 命令处于技术预览阶段,未来版本中可能会发生变化。
该命令定义在Qt6 包的Qml 组件中,可按以下方式加载:
find_package(Qt6 REQUIRED COMPONENTS Qml)用法
qt_add_qml_preview(target)如果禁用了无版本号的命令,请改用qt6_add_qml_preview() 。它支持与本命令相同的参数集。
描述
qt_add_qml_preview() 为可执行文件target 配置qmlpreview实时重载支持,该可执行文件从一个或多个通过qt_add_qml_module() 创建的 QML 模块中加载 QML,但其本身并非由qt_add_qml_module() 创建。它会创建一个名为<target>_qmlpreview 的额外构建目标,用于在该可执行文件上启动qmlpreview。
target 必须是由当前项目构建的可执行目标。若传入库目标或从其他包导入的目标,将导致配置时出错。
如果 `target ` 本身是一个 QML 模块,则该命令会立即返回而不执行任何操作,因为此类目标作为 `qt_add_qml_module()` 的一部分已获得qmlpreview支持。
如果 `target ` 链接了 `Qt6::Qml `,但在其链接闭包中找不到项目内的 QML 模块,则会在构建时发出警告,因为在此情况下,Qt 资源中嵌入的 QML 将无法实现实时刷新。 如果发生这种情况,请将您希望预览其 QML 文件的qt_add_qml_module()目标链接到target 。
注意:要 使用生成的<target>_qmlpreview 目标,target 本身需要使用 QML 调试基础设施进行构建,这与直接使用qmlpreview工具的要求相同。此外,在交叉编译时不会创建该目标。
默认情况下,对于所有链接到Qt6::Qml 的可执行目标,qmlpreview支持都会自动配置,因此通常完全不需要调用qt_add_qml_preview() 。 只有在该自动行为被关闭时,此函数才作为针对特定目标的覆盖选项而有用:调用它可为target 启用qmlpreview支持,即使已通过 QT_QML_NO_QML_PREVIEW 变量全局禁用预览功能,或者通过该目标的QT_QML_NO_QML_PREVIEW属性针对该目标禁用预览功能。
示例
qt_add_library(mylib STATIC)
qt_add_qml_module(mylib
URI My.Lib
VERSION 1.0
QML_FILES
Main.qml
)
qt_add_executable(myapp main.cpp)
target_link_libraries(myapp PRIVATE mylib)
qt_add_qml_preview(myapp)另请参阅 qmlpreview和qt_add_qml_module。
© 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.