Sur cette page

QQmlNetworkAccessManagerFactory Class

La classe `QQmlNetworkAccessManagerFactory` crée des instances de ` QNetworkAccessManager ` pour un moteur QML. En savoir plus...

En-tête : #include <QQmlNetworkAccessManagerFactory>
CMake : find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake : QT += qml

Fonctions publiques

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

Description détaillée

Un moteur QML utilise QNetworkAccessManager pour tous ses accès réseau. En implémentant une fabrique, il est possible de fournir au moteur QML des instances personnalisées d’ QNetworkAccessManager avec une prise en charge spécialisée de la mise en cache, des proxys et des cookies.

Pour implémenter une fabrique, sous-classez QQmlNetworkAccessManagerFactory et implémentez la méthode virtuelle create(), puis attribuez-la au moteur QML concerné à l’aide de QQmlEngine::setNetworkAccessManagerFactory(). Par exemple, les objets QNetworkAccessManager créés par l’extrait de code suivant mettront les requêtes en cache.

class CachingNetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory
{
public:

    inline QNetworkAccessManager *create(QObject *parent) override
    {
        QNetworkAccessManager *networkAccessManager = new QNetworkAccessManager(parent);
        QNetworkDiskCache *diskCache = new QNetworkDiskCache(parent);
        diskCache->setCacheDirectory("requestCache");
        networkAccessManager->setCache(diskCache);

        return networkAccessManager;
    }
};

La fabrique peut ensuite être transmise au moteur QML afin qu’il puisse instancier l’ QNetworkAccessManager avec le comportement personnalisé.

CachingNetworkAccessManagerFactory networkManagerFactory;
engine->setNetworkAccessManagerFactory(&networkManagerFactory);

Notez que le moteur QML peut créer des instances d’ QNetworkAccessManager à partir de plusieurs threads. De ce fait, l’implémentation de la méthode create() doit être reentrant. De plus, le développeur doit faire preuve de prudence si les signaux de l’objet renvoyé par create() sont connectés aux slots d’un objet susceptible d’être créé dans un autre thread :

Pour plus d’informations sur les signaux et les threads, consultez les sections « Threads et QObjects » et « Signaux et slots entre threads ».

Voir également QNetworkDiskCache.

Documentation sur les fonctions membres

[virtual noexcept] QQmlNetworkAccessManagerFactory::~QQmlNetworkAccessManagerFactory()

Détruit le constructeur. L'implémentation par défaut ne fait rien.

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

Crée et renvoie un gestionnaire d'accès réseau avec l'parent spécifiée. Cette méthode doit renvoyer une nouvelle instance de ` QNetworkAccessManager ` à chaque fois qu'elle est appelée.

Remarque : cette méthode pouvant être appelée par plusieurs threads, veillez à ce que son implémentation soit réentrante.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.