QWebView始终无法加载网站

时间:2014-09-15 14:48:27

标签: c++ qt qwebview

我正在运行QtCreator 3.2.0,基于Windows 8.1上的Qt 5.3.1。

似乎无论我想加载什么网站,onLoadFinished插槽总是返回 false 。我尝试加载有和没有SSL的网站,都失败了。

当我尝试加载本地资源时,一切运行良好。所以我用wireshark监视我的网络,我的Qt应用程序甚至没有发送请求,我还用QUrl :: isValid()检查了QUrl,尝试使用QWebView :: load()而不是QWebView :: setUrl()并运行我的管理员申请。没有任何效果。

我在代码中找不到任何错误,我有点觉得这是一个错误,但我不确定。

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->webView->page()->networkAccessManager(), SIGNAL(finished(QNetworkReply*)),
            this, SLOT(errorcheck(QNetworkReply*)));

    QUrl url("http://www.nasa.gov/");
    ui->webView->setUrl(url);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_webView_loadFinished(bool arg1)
{
    ui->label->setText(arg1 ? "success" : "failure");
}

void MainWindow::errorcheck(QNetworkReply* QNR) {
    qDebug() << QNR->errorString();
}

输出为:"Host www.nasa.gov not found"

1 个答案:

答案 0 :(得分:2)

尝试

connect(QWebView->page()->networkAccessManager(), SIGNAL(finished(QNetworkReply*)),
this, SLOT(errorcheck(QNetworkReply*)));

void MainWindow::errorcheck(QNetworkReply* QNR) {
qDebug()<<QNR->errorString;
}

并检查是否有任何错误发生。