如何从QWebView下载文件
How to download files from QWebView?
我用QT Creator和QWebView创建了一个小型web浏览器。我的工作非常好,页面加载非常快。但是我怎样才能使我的浏览器能够下载文件呢?我浏览了信号和功能列表,但没有找到有用的东西。我怎样才能发现一个QUrl是否包含一个链接到文本/html以外的文件,以便我可以下载它?
QWebView有一个' q网页'成员,你可以访问它的指针与webView.page()
。这就是你应该看的地方。q网页有两个信号:downloadRequested(..)
和unsupportedContent(..)
。我相信只有当用户右键单击链接并选择"保存链接"时才会发出downloadrequest,当目标URL无法显示(不是html/文本)时才会发出unsupportedContent。
但是要发出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();
}
请记住,MainWindow::download(..)和MainWindow::unsupportedContent(..)是SLOT
s !
相关文章:
- 从 C++ 上的网址下载文件
- 使用 libssh 从 SFTP 服务器下载文件并使用 C++ 将其写入 ofstream?
- 视觉 无法使用 libcurl c++ 下载文件
- 下载文件到漫游问题
- Qnetworkreply,QnetworkAccessManager- https下载文件 - 高CPU使用情况
- 通过 c++ 中的 curl 从 Dropbox 下载文件
- CMake检查下载文件的哈希值(MD5/SHA256)
- 使用C 下载文件
- 使用 CGI C++下载文件
- 下载文件 C++ Linux GCC
- 从互联网下载文件,HttpSendRequest失败并显示错误代码
- 如何使用进度对话框在wxWidgets中下载文件
- 使用 curl 下载文件时确定扩展名
- 从FTP自动下载文件并检查现有文件
- Curl-通过登录从间接URL下载文件
- lib无法下载文件
- 从网站下载文件
- 库,用于从网站下载文件
- 如何在下载文件之前获取文件名
- 下载文件,winsock recv() 进行流写入,文件损坏