2016-08-07 20 views
0

私は何かをダウンロードするためにQWebEngineProfileとQWebEngineDownloadItemが使用されていることを知っています。しかし、私はどのように理解できません。私はダウンロードを達成するために接続を使用しようとしています。ここに私のコードがありますQWebEngineのダウンロードを処理するには?

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

答えて

2

ダウンロードマネージャーの例を含む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))); 
+0

何らかの理由で私のために機能しません。私はダウンロードボタンをクリックして何も起こりません。デバッグコンソールに何も表示されません –

+0

私はQWebKitからQWebEngineに移植しています。そして、linkClickedというシグナルがありました。 WebEngineにはそのようなシグナルはありません。これが理由だろうか? –

+0

コードはQt 5.7で動作しています。単一のURLをすべて処理する場合は、この記事の私の答えをチェックしてください:http://stackoverflow.com/questions/38343790/how-to-use-qwebengineurlrequestinterceptor/38351234#38351234 – mohabouje

関連する問題