Frage

Ich verwende QWebPage eine Webseite zum Download sowie alle seine Ressourcen. Zugleich würde Ich mag halten, auf Rohdaten erhalten, indem Qt während dieses Prozesses heruntergeladen werden. Auf diese durch Daten von QNetworkReply in void QNetworkAccessManager::finished(QNetworkReply * reply) Signal ist keine gute Lösung, wie Daten, die bereits von QWebPage gelesen worden sein könnten selbst. Dies liegt daran,

QNetworkReply ist ein sequenzieller Zugriff QIODevice, der, dass, sobald Daten bedeutet, , Ist es nicht von dem Objekt mehr lesen durch das Gerät gehalten wird.

detaillierter Beschreibung von QNetworkReply.

Allerdings kann QWebPage zu verwenden benutzerdefinierten konfiguriert werden QNetworkAccessManager mit überschriebene createRequest Methode

QNetworkReply * QNetworkAccessManager::createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 )

ich glaube, die richtige Lösung einen Proxy für QNetworkReply zu schaffen wäre und es in der createRequest Methode zurückzukehren. Dieser Proxy soll zum Lesen von Daten aus Antwort ermöglichen, wie der Fall mit dem Original QNetworkReply ist (so dass QWebPage Daten daraus lesen konnte), aber zugleich sollte diese Proxy erlaubt Daten von anderen Objekten zu lesen, nachdem sie von QWebPage gelesen wurde. Mit anderen Worten: Wir müssen tee QNetworkReply Basisklasse IODevice.

Wie dieses Proxy schreiben?

War es hilfreich?

Lösung

Es sieht aus wie jemand bereits die gleiche wollte und schrieb ein Proxy für den QNetworkReply .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top