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>

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

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

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

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

初识Qt基于http协议网页浏览的更多相关文章

  1. Qt基于tcp协议网络编程

    基于Qt网络编程: 基于tcp协议 c/s模式编程 所需要的类:QTcpServer QTcpSocket 利用qt基于tcp协议编写c/s模式程序: 两个类中的信号: QTcpServer : ne ...

  2. 基于Qt的Tcp协议的流程图

    TCP(Transmission Control Protocol传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议.在qt中,Tcp协议主要是用QTcpServer和QTcpSock ...

  3. 一个简单的基于HTTP协议的屏幕共享应用

    HTTP协议可以能是应用层协议里使用最广泛并且用途最多样的一个了.我们一般使用HTTP协议来浏览网页,但是HTTP协议还用来做很多其它用途.对开发人员来讲很常见的一种就是用HTTP协议作为各种版本控制 ...

  4. (1)线程的同步机制 (2)网络编程的常识 (3)基于tcp协议的编程模型

    1.线程的同步机制(重点)1.1 基本概念 当多个线程同时访问同一种共享资源时可能会造成数据的覆盖和不一致等问题,此时就需要对线程之间进行协调和通信,该方式就叫线程的同步机制. 如: 2003年左右 ...

  5. (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型

    1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...

  6. 集成基于CAS协议的单点登陆

    相信大家对单点登陆(SSO,Single Sign On)这个名词并不感到陌生吧?简单地说,单点登陆允许多个应用使用同一个登陆服务.一旦一个用户登陆了一个支持单点登陆的应用,那么在进入其它使用同一单点 ...

  7. 基于XMPP协议的Android即时通信系

    以前做过一个基于XMPP协议的聊天社交软件,总结了一下.发出来. 设计基于开源的XMPP即时通信协议,采用C/S体系结构,通过GPRS无线网络用TCP协议连接到服务器,以架设开源的Openfn'e服务 ...

  8. Kcptun 是一个非常简单和快速的,基于KCP 协议的UDP 隧道,它可以将TCP 流转换为KCP+UDP 流

    本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度.Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户:而 ...

  9. 基于HTTP协议的几种实时数据获取技术

    原文链接https://www.cnblogs.com/xrq730/p/9280404.html,作者博客园----五月的仓颉,转载请注明出处,谢谢 HTTP协议 HTTP协议大家都很熟悉了,开始本 ...

随机推荐

  1. CentOS 7 隐藏任务栏和顶栏

    我使用的是Gnome,对于使用惯了windows的我来说,这个界面确实有点丑,但是,也将就着用了,最近发现有一款软件(Cairo-Dock)可以美化桌面,于是就安装了,但是安装之后发现了一个问题:原来 ...

  2. Extjs校验配置项

    Extjsform组件1.Ext.form.Action 配置项:success:执行成功后回调的函数,包括两个参数:form和actionfailure:执行失败后回调的函数,包括两个参数:form ...

  3. java集合(List集合与Map集合的数据转换)

    List集合与Map集合的数据转换 实现List和Map数据的转换. 具体要求如下: 功能1:定义方法public void listToMap( ){ }将List中Student元素封装到Map中 ...

  4. SQL SERVER DATETIME应用

    ),, , ),); ),, ),); ),, , ),); ),, ),); ),, , ),); ),, ),); How to get first and last day of previou ...

  5. R下载package的一些小问题

    1.Error in install.packages : unable to create ‘C:/Users/???/Documents/R/win-library\3.5 采用管理员身份运行,先 ...

  6. WPF 手机验证码 发送按钮倒计时 代码

    private async void SendButton_Click(object sender, RoutedEventArgs e) { var button = sender as Butto ...

  7. solidity 语法学习

    基于 cryptozombies.io ZombieFactory pragma solidity ^0.4.19; contract ZombieFactory { // 事件, web3.js 可 ...

  8. 报表和aspx结合后在aspx页面实现工具栏的方法

     现在有好多客户在.net中用到了快逸报表,主要方法是把报表部署在一个j2ee应用中,.net部署在IIS中,把报表嵌入到aspx页面中的iframe里面.如果原本aspx页面中一些按钮或者工具, ...

  9. Android设置日期DatePickerDialog

    设置日期DatePickerDialog package com.example.testview; import java.util.Calendar; import java.util.Date; ...

  10. 【Redis】命令学习笔记——键(key)(20个超全字典版)

    安装完redis和redis-desktop-manager后,开始学习命令啦!本篇基于redis 4.0.11版本,从对键(key)开始挖坑! 准备工作,使用db1(默认db0,由于之前练习用db0 ...