Spec-Zone.ru › Qt 6.1

Класс QQmlAbstractUrlInterceptor

позволяет управлять загрузкой файлов QML. Подробнее...

Заголовок: #include <QQmlAbstractUrlInterceptor>
CMake: find_package(Qt6 COMPONENTS Qml REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake: QT += qml
  • Список всех членов, включая унаследованные

Типы публичного доступа

перечисление DataType { QmldirFile, JavaScriptFile, QmlFile, UrlString }

Функции публичного доступа

QQmlAbstractUrlInterceptor()
виртуальный ~QQmlAbstractUrlInterceptor()
виртуальный QUrl intercept(const QUrl &url, QQmlAbstractUrlInterceptor::DataType type) = 0

Подробное описание

QQmlAbstractUrlInterceptor — это интерфейс, который можно использовать для изменения URL-адресов перед их использованием движком QML. Это в первую очередь полезно для изменения URL-адресов файлов на другие URL-адреса файлов, например, для выбора различных графических ресурсов для текущей платформы.

Относительные URL-адреса перехватываются после разрешения относительно пути к файлу текущего контекста QML. Перехват URL-адресов также происходит после установки базового пути для загруженного файла QML. Это означает, что содержимое, загруженное для этого файла QML, использует перехваченный URL-адрес, но внутри файла используется предварительно перехваченный URL-адрес для разрешения относительных путей. Это позволяет перехватывать загрузку файлов .qml, не требуя всех путей (или локальных типов) внутри перехваченного содержимого для вставки другого относительного пути.

По сравнению с setNetworkAccessManagerFactory, QQmlAbstractUrlInterceptor затрагивает все URL-адреса и пути, включая локальные файлы и файлы встроенных ресурсов. QQmlAbstractUrlInterceptor является синхронным, а для асинхронных файлов должен возвращать URL с асинхронной схемой (например, http или пользовательской схемой, обрабатываемой собственным пользовательским QNetworkAccessManager). Вы можете использовать QQmlAbstractUrlInterceptor для изменения URL-адресов файлов на сетевые URL-адреса, которые обрабатываются собственным пользовательским QNetworkAccessManager.

Чтобы реализовать поддержку пользовательской сетевой схемы, см. setNetworkAccessManagerFactory.

Документация по типам членов

перечисление QQmlAbstractUrlInterceptor::DataType

Указывает, где происходит перехват URL-адресов.

Поскольку QML загружает файлы qmldir для поиска типов, в загрузке типа участвуют два URL-адреса. URL-адрес (возможно, неявного) qmldir, используемого для поиска типа, и URL-адрес файла, определяющего тип. Перехват обоих приводит либо к сложному замене URL-адресов, либо к двойной замене URL-адресов для одного и того же файла.

Постоянная Значение Описание
QQmlAbstractUrlInterceptor::QmldirFile 2 Перехватываемый URL-адрес относится к файлу Qmldir. Перехват этого, но не QmlFile, позволяет заменить целые поддеревья.
QQmlAbstractUrlInterceptor::JavaScriptFile 1 Перехватываемый URL-адрес — это импорт файла Javascript.
QQmlAbstractUrlInterceptor::QmlFile 0 Перехватываемый URL-адрес относится к файлу Qml. Перехват этого, но не файла Qmldir, оставляет неизменным базовый каталог файла QML и действует как замена файла другим файлом.
QQmlAbstractUrlInterceptor::UrlString 0x1000 Перехватываемый URL-адрес — это свойство url в файле QML, которое не используется для загрузки файла через движок.

Документация по функциям членов

QQmlAbstractUrlInterceptor::QQmlAbstractUrlInterceptor()

Конструктор для QQmlAbstractUrlInterceptor.

[virtual] QQmlAbstractUrlInterceptor::~QQmlAbstractUrlInterceptor()

Деструктор для QQmlAbstractUrlInterceptor.

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

Чистая виртуальная функция, в которой вы можете перехватить url. Возвращаемое значение используется в качестве нового значения для URL-адреса. Тип перехватываемого URL-адреса задается переменной type.

Ваша реализация этой функции должна быть потокобезопасной, так как она может вызываться из нескольких потоков одновременно.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qqmlabstracturlinterceptor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API