Spec-Zone.ru › Qt 5.12

Класс QQmlNetworkAccessManagerFactory

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

Заголовок: #include <QQmlNetworkAccessManagerFactory>
qmake: QT += qml
С момента: Qt 5.0
  • Список всех членов, включая наследуемые

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

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

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

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

Движок 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-5.12/qqmlnetworkaccessmanagerfactory.html

Spec-Zone.ru

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