QWebPageWeb ページとそのすべてのリソースをダウンロードするために使用します。同時に、このプロセス中に Qt によってダウンロードされる生データを保持したいと思います。QNetworkReply信号からデータを読み取ることによってこれを行うことvoid QNetworkAccessManager::finished(QNetworkReply * reply)
は、データ自体が既に読み取られている可能性があるため、良い解決策ではありませんQWebPage。それの訳は
QNetworkReply はシーケンシャル アクセスの QIODevice です。つまり、データがオブジェクトから読み取られると、デバイスによって保持されなくなります。
の詳しい説明通りですQNetworkReply。
ただし、オーバーライドされたメソッドでQWebPageカスタムを使用するように構成できますQNetworkAccessManagercreateRequest
QNetworkReply * QNetworkAccessManager::createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 )
正しい解決策は、プロキシを作成してメソッドQNetworkReplyで返すことだと思います。createRequestこのプロキシは、元の場合と同様に、応答からデータを読み取ることができるようにする必要がありますQNetworkReply(そのため、QWebPageデータを読み取ることができます) QWebPage。言い換えれば、の基底クラスにはティーが必要です。QNetworkReplyIODevice
このプロキシの書き方