ダウンロードマネージャーの例を含む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)));
何らかの理由で私のために機能しません。私はダウンロードボタンをクリックして何も起こりません。デバッグコンソールに何も表示されません –
私はQWebKitからQWebEngineに移植しています。そして、linkClickedというシグナルがありました。 WebEngineにはそのようなシグナルはありません。これが理由だろうか? –
コードはQt 5.7で動作しています。単一のURLをすべて処理する場合は、この記事の私の答えをチェックしてください:http://stackoverflow.com/questions/38343790/how-to-use-qwebengineurlrequestinterceptor/38351234#38351234 – mohabouje