gpt4 book ai didi

c++ - 在 QtWebEngine 中处理下载

转载 作者:IT老高 更新时间:2023-10-28 12:44:00 26 4
gpt4 key购买 nike

我们目前正在将一个项目从 QtWebkit 迁移到 QWebEngine。但是,处理下载会让人有些头疼。以前我们使用 QWebPage::unsupportedContent 信号来处理这个问题,如下所示:

QWebPage* webPage = new QWebPage(this);

QObject::connect(webPage, &QWebPage::unsupportedContent, [] (QNetworkReply* reply) {
// do stuff with the reply
reply->readAll();
});

当使用 QtWebEngine 时,我唯一能想到的就是使用 QWebEngineView::urlChanged 信号向服务器发出请求,我什至没有确定这是否可行。

QNetworkAccessManager* accessManager = new QNetworkAccessManager(this);
QWebEngineView* webView = new QWebEngineView(this);

QObject::connect(webView, &QWebEngineView::urlChanged, [=] (const QUrl& url) {
if (url.path().endsWith("some_endpoint_which_results_in_a_download") {
QNetworkReply* reply = accessManager->get(url);
// do the same stuff to the reply
reply->readAll();
}
})

显然,这种方法非常有限,因为导致下载的端点必须硬编码到应用程序中。但是,我看不到更好的解决方案。有没有人想出更好的办法?

-- 更新--

来自 Qt 的 5.5 Release plan 的文档概述了开发人员对 Web 缓存和 cookie 控制的其他改进,以及以下功能。

Added API for managing downloading of files

5.5 测试版将于 2015 年 9 月 4 日发布,最终版将于 2015 年 5 月 26 日发布。

为了防止进一步的头部外伤,等待这些改进可能是值得的。

话虽如此,如果有人有的话,我仍然会对比我更清洁的解决方案感兴趣。

最佳答案

QtWebEngine 通过带有 downloadRequested 的 QWebEngineProfile 类管理下载。信号。

关于c++ - 在 QtWebEngine 中处理下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29212712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com