QQmlAbstractUrlInterceptor Class

를 사용하면 QML 파일 로드를 제어할 수 있습니다. 더 보기...

Header: #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은 현재 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 교체가 발생합니다.

상수설명
QQmlAbstractUrlInterceptor::QmldirFile2가로채는 URL은 Qmldir 파일에 대한 것입니다. QmlFile이 아닌 이 파일을 가로채면 전체 하위 트리를 교체할 수 있습니다.
QQmlAbstractUrlInterceptor::JavaScriptFile1가로채는 URL은 자바스크립트 파일에 대한 가져오기입니다.
QQmlAbstractUrlInterceptor::QmlFile0가로채는 URL은 Qml 파일에 대한 가져오기입니다. Qmldir 파일이 아닌 이 파일을 가로채면 QML 파일의 기본 디렉토리는 그대로 유지되며 파일을 다른 파일로 바꾸는 것처럼 작동합니다.
QQmlAbstractUrlInterceptor::UrlString0x1000가로채는 URL은 QML 파일의 URL 속성이며 엔진을 통해 파일을 로드하는 데 사용되지 않습니다.

멤버 함수 문서

[constexpr noexcept] QQmlAbstractUrlInterceptor::QQmlAbstractUrlInterceptor()

QQmlAbstractUrlInterceptor 의 생성자입니다.

[virtual constexpr noexcept] QQmlAbstractUrlInterceptor::~QQmlAbstractUrlInterceptor()

의 소멸자 QQmlAbstractUrlInterceptor.

[pure virtual] QUrl QQmlAbstractUrlInterceptor::intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type)

url 를 가로챌 수 있는 순수 가상 함수입니다. 반환된 값은 URL의 새 값으로 사용됩니다. 가로채는 URL의 유형은 type 변수에 의해 지정됩니다.

이 함수의 구현은 여러 스레드에서 동시에 호출할 수 있으므로 스레드 안전해야 합니다.

© 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.