• PySide 模块
  • PySide.QtDeclarative
  • 内容表表







    PySide.QtDeclarative.QDeclarativeNetworkAccessManagerFactory class creates PySide.QtNetwork.QNetworkAccessManager instances for a QML engine.

    A QML engine uses PySide.QtNetwork.QNetworkAccessManager for all network access. By implementing a factory, it is possible to provide the QML engine with custom PySide.QtNetwork.QNetworkAccessManager instances with specialized caching, proxy and cookies support.

    To implement a factory, subclass PySide.QtDeclarative.QDeclarativeNetworkAccessManagerFactory and implement the virtual PySide.QtDeclarative.QDeclarativeNetworkAccessManagerFactory.create() method, then assign it to the relevant QML engine using QDeclarativeEngine.setNetworkAccessManagerFactory() .

    Note the QML engine may create PySide.QtNetwork.QNetworkAccessManager instances from multiple threads. Because of this, the implementation of the PySide.QtDeclarative.QDeclarativeNetworkAccessManagerFactory.create() method must be 可重入 . In addition, the developer should be careful if the signals of the object to be returned from PySide.QtDeclarative.QDeclarativeNetworkAccessManagerFactory.create() are connected to the slots of an object that may be created in a different thread:

    • The QML engine internally handles all requests, and cleans up any PySide.QtNetwork.QNetworkReply objects it creates. Receiving the QNetworkAccessManager.finished() signal in another thread may not provide the receiver with a valid reply object if it has already been deleted.
    • Authentication details provided to QNetworkAccessManager.authenticationRequired() must be provided immediately, so this signal cannot be connected as a Qt.QueuedConnection (or as the default Qt.AutoConnection from another thread).

    For more information about signals and threads, see 线程和 QObject and 信号和槽跨线程 .


    NetworkAccessManagerFactory example

    class PySide.QtDeclarative. QDeclarativeNetworkAccessManagerFactory
    PySide.QtDeclarative.QDeclarativeNetworkAccessManagerFactory. create ( parent )
    参数: parent PySide.QtCore.QObject
    返回类型: PySide.QtNetwork.QNetworkAccessManager

    Creates and returns a network access manager with the specified parent . This method must return a new PySide.QtNetwork.QNetworkAccessManager instance each time it is called.

    Note: this method may be called by multiple threads, so ensure the implementation of this method is reentrant.