The main process is to set QNetworkAccessManager instance to a QWebPage object, then use finished signal to capture QNetworkReply reply.
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true);
QWebSettings::globalSettings()->setAttribute(QWebSettings::AutoLoadImages, true);
QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, true);
QWebSettings::globalSettings ()->setAttribute (QWebSettings::DeveloperExtrasEnabled, true);
static QWebView * view;
view = new QWebView(this);
ui->verticalLayout->addWidget(view);
nm = new QNetworkAccessManager(this);
QNetworkRequest *request = new QNetworkRequest(QUrl("http://music.baidu.com/song/s/6307e667db90856f3ab7c?fm=altg_new3"));
QWebPage *page = new QWebPage();
page->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
page->setNetworkAccessManager(nm);
connect(nm, SIGNAL(finished(QNetworkReply*)), this, SLOT(when_reply_finished(QNetworkReply*)));
// const QWebFrame *frame = page->mainFrame();
view->setPage(page);
view->load(*request);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::when_reply_finished(QNetworkReply *reply) {
const QString &url = reply->url().toString();
qDebug() << url;
}