我向来没怎么研究过网络,因为我以前不做网络,所以没怎么研究过。整了好几天才整的能上网。 想学点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./")); webV->show(); }
居然还是编译不通过,整半天,发现是在.pro文件里面少了QT += webkit network。 总算通过了,等待测试,哈哈~ 成功了!顺利显示出了Google网页。虽然是个小小成功,但是还是挺开心的。 忘记了,我还delete netwkAcssMng;的。哈哈。 也许不应该delete netwkAcssMng吧,人家都属于webV的page了吧。 |
|
来自: haodafeng_org > 《我的图书馆》