qt_add_qml_preview
Sets up qmlpreview support for an executable that isn't itself a QML module.
This command was introduced in Qt 6.12.
Note: This command is in technology preview and may change in future releases.
The command is defined in the Qml component of the Qt6 package, which can be loaded like so:
find_package(Qt6 REQUIRED COMPONENTS Qml)Synopsis
qt_add_qml_preview(target)If versionless commands are disabled, use qt6_add_qml_preview() instead. It supports the same set of arguments as this command.
Description
qt_add_qml_preview() sets up qmlpreview live-reload support for an executable target that loads QML from one or more QML modules created with qt_add_qml_module(), but which is not itself created by qt_add_qml_module(). It creates an additional build target named <target>_qmlpreview that launches qmlpreview on the executable.
The target must be an executable target built by the current project. Passing a library target, or a target imported from another package, results in a configure-time error.
If target is itself a QML module, this command returns immediately without doing anything, because such targets already get qmlpreview support as part of qt_add_qml_module().
If target links against Qt6::Qml but no in-project QML modules can be found in its link closure, a warning is emitted at build time, because live reload of QML embedded in Qt resources will not work in that case. If this happens, link the qt_add_qml_module() target(s) whose QML files you want to preview to target.
Note: To make use of the resulting <target>_qmlpreview target, target itself needs to be built with QML debugging infrastructure, the same requirement as for using the qmlpreview tool directly. Moreover, the target is not created when cross-compiling.
By default, qmlpreview support is already set up automatically for every executable target that links against Qt6::Qml, so you normally don't need to call qt_add_qml_preview() at all. It is only useful as a per-target override when that automatic behavior has been switched off: calling it enables qmlpreview support for target even if preview has been disabled globally via the QT_QML_NO_QML_PREVIEW variable, or for that target via its QT_QML_NO_QML_PREVIEW property.
Example
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)See also qmlpreview and 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.