최신 QML 모듈
Qt 6에서는 QML 모듈이 더욱 강력해지고 사용하기 쉬워졌습니다. 다음 섹션에서는 이미 qt_add_qml_module을 사용하는 QML 모듈을 현대화하는 방법을 설명합니다.
QML 모듈을 qt_add_qml_module CMake API로 포팅하는 방법에 대해서는 QML 모듈을 CMake로 포 팅하기를 참조하십시오.
qt_standard_project_setup 사용
qt_standard_project_setup은 무엇보다도 최신 QML 모듈에 필요한 Qt CMake 정책을 설정합니다. QML 모듈을 현대화하고 모범 사례를 따르려면 프로젝트의 최상위 레벨 CMakeLists.txt
파일에서 qt_add_qml_module을 호출하기 전에 qt_standard_project_setup을 호출합니다:
qt_standard_project_setup(REQUIRES 6.8)
새로운 표준 리소스 경로 접두사 사용
QML 모듈의 표준 리소스 경로는 QTP0001에서 :/
에서 :/qt/qml
로 이동했습니다. 엔진에서 사용자 지정 리소스 접두사를 사용하거나 가져오기 경로를 확장하지 마세요. 모든 qt_add_qml_module 호출에서 RESOURCE_PREFIX
인수를 모두 제거하고 QQmlEngine::addImportPath 또는 이와 유사한 호출도 모두 제거하세요. 새 리소스 경로 접두사를 사용하도록 C++ 및 QML 코드의 모든 qrc 경로를 변경합니다:
// C++ usages like: QUrl someUrl("qrc:/MyQmlModule/MyResource1.png"); // need to be changed to QUrl someUrl("qrc:/qt/qml/MyQmlModule/MyResource1.png"); // QML usages like: ":/MyQmlModule/MyResource1.png" // need to be changed to ":/qt/qml/MyQmlModule/MyResource1.png"
QML과 함께 Qt 리소스 시스템 사용도 참조하십시오.
loadFromModule을 사용하여 QML 파일 로드하기
기본 가져오기 경로로 QQmlApplicationEngine::loadFromModule, QQuickView::loadFromModule, 또는 QQmlComponent::loadFromModule 와 같은 loadFromModule
메서드를 사용할 수 있습니다.
예를 들어 loadFromModule
을 사용하여 QML 파일을 로드합니다:
engine.load(QUrl(QStringLiteral("qrc:/MyQmlModule/Main.qml"))); // becomes engine.loadFromModule("MyQmlModule", "Main");
출력 디렉토리 및 가져오기 경로를 종속성 대상으로 바꾸세요.
qt_add_qml_module에 IMPORT_PATH
을 설정하지 마세요. 대신 DEPENDENCIES TARGET
을 사용하여 현재 가져오기 경로에서 찾을 수 없는 다른 QML 모듈에 대한 종속성을 선언하세요.
DEPENDENCIES TARGET
을 사용하면 QT_QML_OUTPUT_DIRECTORY
CMake 변수와 OUTPUT_DIRECTORY
인수가 필요하지 않으므로 해당 정의와 사용법을 제거하세요.
예를 들어
### in the CMakeLists.txt file defining the dependent QML module: # don't set QT_QML_OUTPUT_DIRECTORY and remove lines like these: set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/qml) qt_add_qml_module(MyThirdPartyQmlLibraryDependency URI MyThirdPartyQmlLibraryDependency .... # custom output paths are obsolete due to DEPENDENCIES TARGET below, so remove: OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/qml } ### in the CMakeLists.txt file defining the QML module that uses the dependency: qt_add_qml_module(MyQmlLibrary URI MyQmlModule ... # replace import paths like these: IMPORT_PATH ${CMAKE_CURRENT_BINARY_DIR}/thirdparty/qml # with: DEPENDENCIES TARGET MyThirdPartyQmlLibraryDependency }
참고: DEPENDENCIES TARGET
에 대한 CMakeLists.txt에서 qt_add_qml_module을 호출하기 전에 add_subdirectory()
을 호출하여 대상을 찾아야 할 수도 있습니다.
모듈 종속성을 선언하는 방법에 대한 자세한 내용은 모듈 종속성 선언하기를 참조하십시오.
Qt Qml 변경 사항 및 CMake에 QML 모듈 포팅도참조하십시오 .
© 2025 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.