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() qt_add_qml_module()로 생성된 하나 이상의 QML 모듈에서 QML을 로드하지만, 그 자체는 qt_add_qml_module()로 생성되지 않은 실행 파일( target )에 대해 qmlpreview 라이브 리로드 지원을 설정합니다. 이 명령어는 해당 실행 파일에서 qmlpreview를 실행하는 <target>_qmlpreview 라는 추가 빌드 타깃을 생성합니다.
target 는 현재 프로젝트에서 빌드된 실행 파일 타깃이어야 합니다. 라이브러리 타깃이나 다른 패키지에서 가져온 타깃을 전달하면 구성 단계에서 오류가 발생합니다.
target 이 그 자체로 QML 모듈인 경우, 이 명령어는 아무런 작업도 수행하지 않고 즉시 반환됩니다. 이러한 타깃은 이미 qt_add_qml_module()의 일부로 qmlpreview 지원을 받기 때문입니다.
target 가 Qt6::Qml 에 링크되어 있지만, 링크 클로저에서 프로젝트 내 QML 모듈을 찾을 수 없는 경우, 빌드 시 경고가 발생합니다. 이는 해당 상황에서 Qt 리소스에 포함된 QML의 라이브 리로드가 작동하지 않기 때문입니다. 이 경우, 미리 보기를 원하는 QML 파일이 포함된 qt_add_qml_module() 타깃을 target 에 연결하십시오.
참고: 생성된 <target>_qmlpreview 타깃을사용하려면 , qmlpreview 도구를 직접 사용할 때와 마찬가지로 target 자체를 QML 디버깅 인프라와 함께 빌드해야 합니다. 또한, 크로스 컴파일 시에는 이 타깃이 생성되지 않습니다.
기본적으로 Qt6::Qml 에 링크되는 모든 실행 파일 타깃에 대해 qmlpreview 지원이 자동으로 설정되어 있으므로, 일반적으로 qt_add_qml_preview() 를 호출할 필요가 전혀 없습니다. 이 함수는 해당 자동 동작이 비활성화된 경우에만 타깃별 재정의 수단으로 유용합니다. 이 함수를 호출하면 QT_QML_NO_QML_PREVIEW 변수를 통해 전역적으로 미리 보기가 비활성화되었거나, 해당 타깃의 QT_QML_NO_QML_PREVIEW 속성을 통해 비활성화된 경우에도 target 에 대한 qmlpreview 지원이 활성화됩니다.
예시
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.