En esta página

QQmlNetworkAccessManagerFactory Class

La clase QQmlNetworkAccessManagerFactory crea instancias de QNetworkAccessManager para un motor QML. Más...

Cabecera: #include <QQmlNetworkAccessManagerFactory>
CMake: find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake: QT += qml

Funciones públicas

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

Descripción detallada

Un motor QML utiliza QNetworkAccessManager para todos los accesos de red. Mediante la implementación de una fábrica, es posible proporcionar al motor QML instancias personalizadas de QNetworkAccessManager con soporte especializado de caché, proxy y cookies.

Para implementar una fábrica, subclase QQmlNetworkAccessManagerFactory e implemente el método virtual create(), luego asígnelo al motor QML relevante usando QQmlEngine::setNetworkAccessManagerFactory(). Por ejemplo, los objetos QNetworkAccessManager creados por el siguiente fragmento almacenarán en caché las solicitudes.

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;
    }
};

A continuación, la fábrica puede pasarse al motor QML para que pueda instanciar el QNetworkAccessManager con el comportamiento personalizado.

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

Tenga en cuenta que el motor QML puede crear instancias de QNetworkAccessManager desde varios subprocesos. Por ello, la implementación del método create() debe ser reentrant. Además, el desarrollador debe tener cuidado si las señales del objeto que se devolverán de create() están conectadas a las ranuras de un objeto que puede crearse en un hilo diferente:

Para más información sobre señales e hilos, ver Hilos y QObjects y Señales y ranuras entre hilos.

Ver también QNetworkDiskCache.

Documentación de la Función Miembro

[virtual noexcept] QQmlNetworkAccessManagerFactory::~QQmlNetworkAccessManagerFactory()

Destruye la fábrica. La implementación por defecto no hace nada.

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

Crea y devuelve un gestor de acceso a la red con la dirección parent especificada. Este método debe devolver una nueva instancia de QNetworkAccessManager cada vez que se llame.

Nota: este método puede ser llamado por múltiples hilos, así que asegúrate de que la implementación de este método es reentrante.

© 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.