我用QT Creator和QWebView創建了一個小型網頁瀏覽器。我工作得很好,頁面加載非常快。但是,如何讓我的瀏覽器能夠下載文件?我查看了信號和功能列表,但沒有找到可以幫助我的東西。 我如何知道QUrl是否包含指向text/html以外的文件的鏈接,以便我可以下載它?如何從QWebView下載文件?
4
A
回答
9
QWebView有一個'QWebPage'會員,您可以通過webView.page()
訪問它的指針。這是你應該看的地方。 QWebPage有兩個信號:downloadRequested(..)
和unsupportedContent(..)
。我相信dowloadRequest僅在用戶右鍵單擊鏈接並選擇「保存鏈接」時發出,而當目標網址無法顯示時(不是HTML /文本),會發出unsupportedContent。
但是,對於不支持的內容發出,您應該設置forwardUnsupportedContent
到True
功能webPage.setForwardUnsupportedContent(true)
。下面是我創建了一個小例子:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->webView->page()->setForwardUnsupportedContent(true);
connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),this,SLOT(download(QNetworkRequest)));
connect(ui->webView->page(),SIGNAL(unsupportedContent(QNetworkReply*)),this,SLOT(unsupportedContent(QNetworkReply*)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::download(const QNetworkRequest &request){
qDebug()<<"Download Requested: "<<request.url();
}
void MainWindow::unsupportedContent(QNetworkReply * reply){
qDebug()<<"Unsupported Content: "<<reply->url();
}
記住,主窗口::下載(..)和主窗口:: unsupportedContent(..)是SLOT
小號!
相關問題
- 1. 加載文件到QwebView
- 2. 如何從文件夾下載文件?
- 3. 如何從Github下載文本文件?
- 4. 如何從JSP下載附件文件
- 5. 加載本地html文件到Pyside QwebView
- 6. PyQt5 QWebView:加載HTML文件加載.js文件
- 7. 如何從http URL下載文件
- 8. 如何從網址下載xml文件
- 9. 如何從鏈接下載文件?
- 10. 如何從EC2下載文件
- 11. 如何從A7 API下載RAW文件?
- 12. SILVERLIGHT。如何從網站下載文件
- 13. 如何從Ftp下載Zip文件#
- 14. 如何從佔位符下載文件
- 15. 如何從服務器下載文件
- 16. 如何從vb.net的SFTP下載文件
- 17. 如何從DHT中下載torrent文件?
- 18. 如何從git倉庫下載文件?
- 19. 如何從XML文件下載圖像?
- 20. 如何從Google Drive下載文件
- 21. 如何從php下載s3文件?
- 22. 如何從CakePHP下載文件?
- 23. Java - 如何從URL下載文件
- 24. 如何從Github下載Release tar文件?
- 25. 如何從bash下載文件夾?
- 26. 如何從網址下載.txt文件?
- 27. 如何從Solr下載索引文件?
- 28. 如何從網頁下載文件?
- 29. 如何從blob下載文件?
- 30. 如何從C#網站下載文件?
非常感謝!現在我可以讓瀏覽器完成了! – StefanEuSunt 2013-05-03 05:42:51