我向来没怎么研究过网络,因为我以前不做网络,所以没怎么研究过。整了好几天才整的能上网。
想学点qt,就在qt creator上弄着玩。什么layout啊,pushbutton啊,等等,整了半天,突然看到QWebView了,我想这个玩意儿可能应该是可以显示网页的吧。拖了一个出来玩玩。编译都无法通过,什么原因呢?找找吧,原来是在.pro文件上少了QT += webkit。编译一下,嘿,通过了。但是没显出任何东西来,咋个回事呢?
大半天又过去了,想起他自带的demo例子了。加载进来看看吧。还是一直处于connecting的状态,就是连接不上,唉。干脆问问别人吧。大胖子PM发话了,你看看代理设置了吗?
奇怪啊,我的代理都是设好了的啊,东找西找,总算看到demo例子运行后,自己有个设置代理的,赶紧改一下吧。哈哈,成功了。
一下子我明白了,我们的网络在域里,应该要有代理才能通到外网。虽然我对代理这个东西不熟,不过大概知道怎么回事,等以后再细细研究一下吧。
隔了几天,继续写程序吧。参照demo例子设置代理的方式,我在自己的mainwindow.h里面添加了一些东西:
#include <QtWebKit/QWebView>
#include <QtNetwork/QNetworkProxy>
#include <QtNetwork/QNetworkAccessManager>
#include <QSettings>
#include <QTextCodec>
class MainWindow : public QMainWindow
{
。。。
private:
Ui::MainWindow *ui;
QWebView *webV;
QNetworkProxy *proxy;
QNetworkAccessManager *netwkAcssMng;
};
mainwindow.cpp中也添加了代码:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
。。。
webV = qFindChild<QWebView *>(this, "webView");
netwkAcssMng = new QNetworkAccessManager;
QNetworkProxy proxy;
proxy = QNetworkProxy::HttpProxy;
proxy.setHostName(tr("xx.xx.xx.xx")); //代理服务器
proxy.setPort(8080);
netwkAcssMng->setProxy(proxy);
webV->page()->setNetworkAccessManager(netwkAcssMng);
webV->load(QUrl("http://www.google.com.hk/"));
webV->show();
}
居然还是编译不通过,整半天,发现是在.pro文件里面少了QT += webkit network。
总算通过了,等待测试,哈哈~
成功了!顺利显示出了Google网页。虽然是个小小成功,但是还是挺开心的。
忘记了,我还delete netwkAcssMng;的。哈哈。
也许不应该delete netwkAcssMng吧,人家都属于webV的page了吧。