用 Qt 下载文件?
Posted
技术标签:
【中文标题】用 Qt 下载文件?【英文标题】:Downloading a file with Qt? 【发布时间】:2012-12-06 16:00:02 【问题描述】:我正在想办法让我的 Qt 浏览器应用程序可以从我们的 Web 应用程序下载 Word 文档。 Web 应用程序是用 ExtJS 编写的,当(在 Chrome 等浏览器中)用户单击“下载报告”按钮时,javascript 事件侦听器检测到该单击并打开 0px0px iframe 并下载文件。我不确定如何在 Qt 中复制此浏览器功能?
当我点击链接时,我收到"Operation canceled" 5
的网络回复?
什么类/方法最适合检索这些文件?
【问题讨论】:
只是在黑暗中拍摄:您检查了qt-project.org/doc/qt-4.8/qwebsettings.html#WebAttribute-enum 中的值吗?特别是像 JavascriptCanOpenWindows? 感谢您的提示,我现在启用了它但仍然没有效果,当我单击“下载报告”链接时操作中止。我认为这是 NetworkAccessManager 的工作,但不知道如何实现它? 【参考方案1】:下载您需要的文件:QNetworkAccessManager 在本例中为 http。 QFile 在这种情况下是 file。 QNetworkReply 在这种情况下 reply 将回复与写入通过 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 发出 finished 信号时完成。 这就是我记得的,我认为这就是全部..
【讨论】:
以上是关于用 Qt 下载文件?的主要内容,如果未能解决你的问题,请参考以下文章