1

QtブラウザアプリがWebアプリからWord文書をダウンロードする方法を見つけようとしています。WebアプリはExtJSで記述されており、(Chromeなどのブラウザーで)ユーザーが[レポートのダウンロード]ボタンをクリックすると、JavaScriptイベントリスナーがそのクリックを検出して0px0pxのiframeを開き、ファイルがダウンロードされます。Qtでこのブラウザ機能を複製する方法がわかりませんか?

"Operation canceled" 5リンクをクリックすると、 ?のネットワーク応答が表示されます。

これらのファイルを取得するには、どのクラス/メソッドが最適ですか?

ここに画像の説明を入力してください

4

1 に答える 1

4

必要なファイルをダウンロードするには:QNetworkAccessManager(この場合はhttp ) 。この場合はQFileファイル。この場合のQNetworkReplyは、 QNetworkAccessManager を介して受信したバイトを書き込むスロットに応答を接続しますこの場合、スロットはreadingReadyBytes()と呼ばれます。

だから私はリクエストを作成して私のスロットに接続します:

 const QNetworkRequest& request = QNetworkRequest(url);
 reply = http->get(request);
 QObject::connect(reply, SIGNAL(readyRead()), this,
        SLOT( readingReadyBytes() ));

次に、スロットを作成します。

 void yourClass::readingReadyBytes() {
    file->write(reply->read(reply->bytesAvailable()));
 }

最後に、ファイルを保存して閉じる必要があります。通常、 QNetworkAccessManager終了信号を発行したときに実行されます。これは私が覚えていることであり、すべてだと思います。

于 2012-12-07T11:00:31.557 に答える