gpt4 book ai didi

c++ - 如何处理 QWebEngine 中的下载?

转载 作者:行者123 更新时间:2023-11-28 02:02:38 26 4
gpt4 key购买 nike

我知道 QWebEngineProfile 和 QWebEngineDownloadItem 是用来下载东西的。但我不明白如何。我正在尝试使用连接来实现下载。这是我的代码

void MainWindow::handleDownloadSlot(QWebEngineDownloadItem *download) {
download->accept();
}
void MainWindow::downloadRequested(QWebEngineDownloadItem *download) {
download->accept();
}
connect (pro,SIGNAL(downloadRequested(QWebEngineDownloadItem *)),this,SLOT(handleDownloadSlot(QWebEngineDownloadItem *)));

最佳答案

检查 Web Demo Browser示例,其中包括一个带有下载管理器的示例。

如果您共享默认 QWebEngineProfile , 尝试:

    connect(QWebEngineProfile::defaultProfile(), SIGNAL(downloadRequested(QWebEngineDownloadItem*)),
this, SLOT(downloadRequested(QWebEngineDownloadItem*)));

对于自定义中定义的配置文件 QWebEnginePage , 尝试:

    connect(webView->page()->profile(), SIGNAL(downloadRequested(QWebEngineDownloadItem*)),
this, SLOT(downloadRequested(QWebEngineDownloadItem*)));

现在处理您的下载以开始:

void MainWindow::downloadRequested(QWebEngineDownloadItem* download) {
if (download->savePageFormat() != QWebEngineDownloadItem::UnknownSaveFormat) {
qDebug() << "Format: " << download->savePageFormat();
qDebug() << "Path: " << download->path();
// If you want to modify something like the default path or the format
download->setSavePageFormat(...);
download->setPath(...);
// Check your url to accept/reject the download
download->accept();
}
}

如果你想显示下载进度的进度对话框,只需使用 QWebEngineDownloadItem 类中可用的信号:

connect(download, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(setCurrentProgress(qint64, qint64)));

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

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