Класс 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 и Сигналы и слоты между потоками.
Версия класса Qt Quick 1 называется QDeclarativeNetworkAccessManagerFactory.
См. также Пример фабрики менеджера сетевого доступа.
Документация по членам функций
[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/archives/qt-5.11/qqmlnetworkaccessmanagerfactory.html