Qt开发——简易网络浏览器

目录

网络应用三驾马车:

效果图:

QNetwork发起网络请求+读取文字内容

mainwindow.cpp

mainwindow.h


网络应用三驾马车:

  • QNetworkAcessManager:协调网络操作
  • QNetwork:网络请求
  • QNetworkReply:网络请求应答

效果图:

QNetwork发起网络请求+读取文字内容

只能显示文字,不能显示图片

mainwindow.cpp

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

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setWindowIcon(QIcon("icon.png"));
    setWindowTitle(QStringLiteral("简易网络浏览器"));
    manager = new QNetworkAccessManager(this);//发送网络请求和接受应答
    //当网络应答结束响应信号
    connect(manager,SIGNAL(finished(QNetworkReply*)),this,
            SLOT(replyFinished(QNetworkReply*)));
//    manager->get(QNetworkRequest(QUrl("https://blog.csdn.net/qq_41895747/category_9122323.html")));
    //发送网络请求
    manager->get(QNetworkRequest(QUrl("http://www.baidu.com")));
}

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

//应答信号,显示网络文字,无法显示动态脚本等其他网络特效与图片
void MainWindow::replyFinished(QNetworkReply *reply){

    QString all = reply->readAll();
    ui->textBrowser->setText(all);
    //读取完成后删除对象
    reply->deleteLater();

}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork>

namespace Ui {
class MainWindow;

class QNetworkReply;
class QNetworkAccessManager;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QNetworkAccessManager *manager;

private slots:
    void replyFinished(QNetworkReply*);

};


#endif // MAINWINDOW_H

 

发布了246 篇原创文章 · 获赞 253 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_41895747/article/details/104093472