我想弄清楚我的Qt瀏覽器應用程序可以從我們的Web應用程序下載一個Word文檔的方式。 Web應用程序是用ExtJS編寫的,當用戶點擊「下載報告」按鈕時(在諸如Chrome之類的瀏覽器中),javascript事件偵聽器檢測到該點擊並打開一個0px0px iframe和文件下載。我不確定如何在Qt中複製這個瀏覽器功能?用Qt下載文件?
當我點擊鏈接時,我得到一個網絡回覆"Operation canceled" 5
?
什麼類/方法最適合檢索這些文件?
我想弄清楚我的Qt瀏覽器應用程序可以從我們的Web應用程序下載一個Word文檔的方式。 Web應用程序是用ExtJS編寫的,當用戶點擊「下載報告」按鈕時(在諸如Chrome之類的瀏覽器中),javascript事件偵聽器檢測到該點擊並打開一個0px0px iframe和文件下載。我不確定如何在Qt中複製這個瀏覽器功能?用Qt下載文件?
當我點擊鏈接時,我得到一個網絡回覆"Operation canceled" 5
?
什麼類/方法最適合檢索這些文件?
下載你需要的文件:一個QNetworkAccessManager在這種情況下HTTP。 a 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發出完成信號.. 這是我記得,我認爲這是所有tipically做..
謝謝@riskio :) – Kal
在黑暗中只是一個鏡頭:你在HTTP檢查值:// QT -project.org/doc/qt-4.8/qwebsettings.html#WebAttribute-enum?特別是像JavascriptCanOpenWindows? –
感謝您的提示,我已經啓用它,但仍然沒有效果,當我點擊「下載報告」鏈接時操作終止。我認爲這是NetworkAccessManager的工作,但不知道如何實現它? – Kal