Spec-Zone.ru › Qt

Класс QQmlNetworkAccessManagerFactory

Класс QQmlNetworkAccessManagerFactory создаёт экземпляры QNetworkAccessManager для QML-движка. Подробнее...

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

Открытые функции

virtual ~QQmlNetworkAccessManagerFactory()
virtual QNetworkAccessManager * create(QObject *parent) = 0

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

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

Для реализации фабрики необходимо унаследовать класс QQmlNetworkAccessManagerFactory и реализовать виртуальный метод create(), а затем назначить его соответствующему QML-движку с помощью QQmlEngine::setNetworkAccessManagerFactory().

Обратите внимание, что QML-движок может создавать экземпляры QNetworkAccessManager из нескольких потоков. Из-за этого реализация метода create() должна быть потокобезопасной. Кроме того, разработчик должен быть внимательным, если сигналы объекта, возвращаемого методом create(), подключены к слотам объекта, который может быть создан в другом потоке:

  • QML-движок внутренне обрабатывает все запросы и очищает все созданные объекты QNetworkReply. Получение сигнала QNetworkAccessManager::finished() в другом потоке может не обеспечить получателю валидный объект ответа, если он уже был удалён.
  • Данные аутентификации, предоставленные методу QNetworkAccessManager::authenticationRequired(), должны быть предоставлены немедленно, поэтому этот сигнал не может быть подключен как Qt::QueuedConnection (или как по умолчанию Qt::AutoConnection) из другого потока.

Дополнительную информацию о сигналах и потоках см. в разделах Потоки и QObjects и Сигналы и слоты через потоки.

См. также Пример фабрики сетевого менеджера доступа.

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

[virtual] QQmlNetworkAccessManagerFactory::~QQmlNetworkAccessManagerFactory()

Удаляет фабрику. Реализация по умолчанию ничего не делает.

[pure virtual] QNetworkAccessManager *QQmlNetworkAccessManagerFactory::create(QObject *parent)

Создаёт и возвращает менеджер сетевого доступа с указанным parent. Этот метод должен возвращать новый экземпляр QNetworkAccessManager каждый раз, когда он вызывается.

Примечание: этот метод может быть вызван из нескольких потоков, поэтому убедитесь, что реализация этого метода является потокобезопасной.

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

Spec-Zone.ru

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