QQmlAbstractUrlInterceptor Class
QML 파일 로딩을 제어할 수 있습니다. 더 보기...
| 헤더: | #include <QQmlAbstractUrlInterceptor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
공개 유형
| enum | DataType { QmldirFile, JavaScriptFile, QmlFile, UrlString } |
공개 함수
| QQmlAbstractUrlInterceptor() | |
| virtual | ~QQmlAbstractUrlInterceptor() |
| virtual QUrl | intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type) = 0 |
상세 설명
QQmlAbstractUrlInterceptor는 QML 엔진에서 URL을 사용하기 전에 해당 URL을 변경하는 데 사용할 수 있는 인터페이스입니다. 이는 주로 파일 URL을 다른 파일 URL로 변경하는 데 유용하며, 예를 들어 현재 플랫폼에 맞는 다른 그래픽 자산을 선택하는 경우 등이 있습니다.
상대 URL은 현재 QML 컨텍스트의 파일 경로에 대해 해결된 후 가로채집니다. URL 가로채기는 로드된 QML 파일의 기본 경로를 설정한 후에도 발생합니다. 즉, 해당 QML 파일에 대해 로드된 콘텐츠는 가로채진 URL을 사용하지만, 파일 내부에서는 상대 경로를 해결하기 위해 가로채기 전의 URL이 사용됩니다. 이를 통해, 가로채기된 콘텐츠 내의 모든 경로(또는 로컬 유형)에 다른 상대 경로를 삽입할 필요 없이 .qml 파일 로딩을 가로챌 수 있습니다.
setNetworkAccessManagerFactory와 비교할 때, QQmlAbstractUrlInterceptor는 로컬 파일 및 임베디드 리소스 파일을 포함하여 모든 URL과 경로에 영향을 미칩니다. QQmlAbstractUrlInterceptor는 동기식이며, 비동기식 파일의 경우 비동기 스키마(예: http 또는 사용자 정의 QNetworkAccessManager 에서 처리하는 사용자 정의 스키마)가 포함된 URL을 반환해야 합니다. QQmlAbstractUrlInterceptor를 사용하여 파일 URL을 사용자 정의 QNetworkAccessManager 에서 처리하는 네트워크 URL로 변경할 수 있습니다.
사용자 정의 네트워크 스키마에 대한 지원을 구현하려면 setNetworkAccessManagerFactory를 참조하십시오.
멤버 유형 문서
enum QQmlAbstractUrlInterceptor::DataType
URL 가로채기가 발생하는 위치를 지정합니다.
QML은 타입을 찾기 위해 qmldir 파일을 로드하기 때문에, QML 타입을 로드하는 과정에는 두 개의 URL이 관련됩니다. 타입을 찾기 위해 사용되는 (명시적이거나 암시적인) qmldir의 URL과, 해당 타입을 정의하는 파일의 URL입니다. 두 URL을 모두 가로채면 URL 대체 과정이 복잡해지거나, 동일한 파일에 대해 URL이 두 번 대체되는 문제가 발생합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QQmlAbstractUrlInterceptor::QmldirFile | 2 | 차단되는 URL은 Qmldir 파일에 대한 것입니다. QmlFile은 차단하지 않고 이 URL만 차단하면 전체 하위 트리를 교체할 수 있습니다. |
QQmlAbstractUrlInterceptor::JavaScriptFile | 1 | 차단된 URL은 자바스크립트 파일의 임포트입니다. |
QQmlAbstractUrlInterceptor::QmlFile | 0 | 차단된 URL은 Qml 파일용입니다. Qmldir 파일은 차단하지 않고 이 URL만 차단하면 QML 파일의 기본 디렉터리는 그대로 유지되며, 마치 파일을 다른 파일로 교체하는 것과 같은 효과가 나타납니다. |
QQmlAbstractUrlInterceptor::UrlString | 0x1000 | 차단된 URL은 QML 파일 내의 url 속성이며, 엔진을 통해 파일을 불러오는 데 사용되지 않습니다. |
멤버 함수 문서
[constexpr noexcept default] QQmlAbstractUrlInterceptor::QQmlAbstractUrlInterceptor()
QQmlAbstractUrlInterceptor의 생성자.
[virtual constexpr noexcept default] QQmlAbstractUrlInterceptor::~QQmlAbstractUrlInterceptor()
QQmlAbstractUrlInterceptor 의 소멸자.
[pure virtual] QUrl QQmlAbstractUrlInterceptor::intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type)
url 을 가로챌 수 있는 순수 가상 함수입니다. 반환된 값은 URL의 새 값으로 사용됩니다. 가로채는 URL의 유형은 type 변수에 의해 지정됩니다.
이 함수는 여러 스레드에서 동시에 호출될 수 있으므로, 구현 시 스레드 안전성을 보장해야 합니다.
© 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.