Qt实现打开网页,新建一个mainwindow。在UI界面添加一个Text Browser。
首先在myHTTP.pro中添加QT += network
在mainwindow.h中新建两个类,QNetworkReply和QNetworkAccessManager。
class QNetworkReply;
class QNetworkAccessManager;
private: QNetworkAccessManager *manager;
private slots: replyFinished(QNetworkReply *);
再新建一个私有指针和一个槽,用来接收信号。做出相应的操作。
私有指针作为发送点,槽作为接受点。
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class QNetworkReply;
class QNetworkAccessManager;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QNetworkAccessManager *manager;
private slots:
void replyFinished(QNetworkReply *);
};
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtNetwork/QtNetwork>
#include <QTextCodec>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
manager=new QNetworkAccessManager(this);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,
SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://www.baidu.com")));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::replyFinished(QNetworkReply *reply)
{
QTextCodec *codec=QTextCodec::codecForName("UTF-8");
QString all=codec->toUnicode(reply->readAll());
ui->textBrowser->setText(all);
reply->deleteLater();
}
connect(sender,SIGNAL(signal),this,SLOT(slot));