• 初识Qt基于http协议网页浏览


    1、新建一个Qt Gui应用,项目名称为http,基类选择为QMainWindow,类名设置为MainWindow。

    2、在http.pro文件中的QT  += core gui后添加 network,或者直接添加QT  += network。

    3、在mainwindow.ui文件中分别拖入label控件、lineEdit控件、pushButton控件以及textBrowser控件,如下。

    4、在mainwindow.h头文件中添加以下代码,同时添加#include<QtNetwork>

    1 private:
    2     Ui::MainWindow *ui;
    3     QNetworkReply *reply;
    4     QUrl url;   //存储网络地址
    5 
    6 private slots:
    7     void on_pushButton_clicked();  //进入按钮按下
    8     void httpFinished();//后对所发射的网络应答结束信号的槽函数

    5、在mainwindow.cpp源文件中添加以下代码

     1 void MainWindow::on_pushButton_clicked()
     2 {
     3     url = ui->lineEdit->text();
     4     QNetworkAccessManager *manager;//用来发送网络请求和接收应答。QNetworkAccessManager类允许应用程序发送网络请求和接收网络应答。
     5     //应用程序利用QNetworkAccessManager创建的对象在网络上发送请求。它是用QNetworkRequest 类来管理请求,QNetworkReply类进行回复接收。
     6     manager = new QNetworkAccessManager(this);
     7     reply = manager->get(QNetworkRequest(url));//读取url地址,并开始发送请求
     8     //QNetworkRequest类包含一个和 QNetworkAccessManager一起发送的请求。QNetworkRequest是Network Access API的一部分,
     9     //并且这个类包含着在网络上发送请求的必要信息。它包含了一个URL和一些可以用来修改请求的附加信息。
    10     connect(reply, SIGNAL(finished()), this, SLOT(httpFinished()));//网络应答结束发送相应的信号
    11 }
    12 
    13 void MainWindow::httpFinished()
    14 {
    15     QTextCodec *codec = QTextCodec::codecForName("utf8");//QTextCodec类来转换编码,以便正确显示中文
    16     QString all = codec->toUnicode(reply->readAll());//readAll()函数可以读取所有应答数据
    17     ui->textBrowser->setText(all);
    18     reply->deleteLater();//在完成数据的读取后,需要使用deleteLater()来删除replay对象。
    19 }

    6、在URL地址栏输入想要访问的网页地址,运行结果如下所示:

  • 相关阅读:
    常见hash算法的原理
    【学习干货】给coder的10个读书建议
    htc one x刷机记录
    Linux 搭建SVN server
    javascript
    USACO comehome Dijkstra
    当设计师、产品经理和程序员去交友站点找女朋友
    Spring3.0 AOP 具体解释
    慕课网Hibernate初探之一对多映射实验及总结
    C++数组引用
  • 原文地址:https://www.cnblogs.com/peter-czhang/p/3386645.html
Copyright © 2020-2023  润新知