Spec-Zone.ru › Qt

Класс 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 для поиска типов, при загрузке типа QML участвуют два 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.2/qqmlabstracturlinterceptor.html

Spec-Zone.ru

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