Qt 是一个跨平台的 C++图形用户界面库,由挪威 TrollTech 公司于1995年底出品。

它是个跨平台的C++图形开发平台

我们在这章中可以学习简单的网络数据获取并显示的内容

本文基于Qt Creator4.2.1(Qt5.8.0)版本, 且有初步使用Qt Creator经验的读者

还未安装开发环境的可以到官网去下载(本例使用的是"qt-opensource-windows-x86-mingw530-5.8.0.exe")

传送门:http://download.qt.io/archive/qt/5.8/5.8.0/

新建一个”Qt Widgets Application”类型的项目

项目名称: httpdemo_get

类名:Dialog

基类: QDialog

项目创建好后

第一步: 在httpdemo_get.pro文件中添加代码

QT += network

第二步, 编辑dialog.h头文件, 加入红框中的代码内容

#ifndef DIALOG_H
#define DIALOG_H #include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtWidgets/QWidget>
#include <QTextCodec>
#include <QString>
#include <QUrl>
#include <QDialog> namespace Ui {
class Dialog;
} class Dialog : public QDialog
{
Q_OBJECT public:
explicit Dialog(QWidget *parent = );
~Dialog(); private Q_SLOTS:
void slot_replayFinished(QNetworkReply *reply); private:
Ui::Dialog *ui; QNetworkAccessManager *m_manager;
QNetworkReply *m_Reply;
}; #endif // DIALOG_H

第三步:编辑dialog.cpp实现, 加入红框中的代码内容

#include "dialog.h"
#include "ui_dialog.h" Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this); this->setWindowFlags(Qt::FramelessWindowHint);
m_manager = new QNetworkAccessManager(this); //新建QNetworkAccessManager对象
connect(m_manager,SIGNAL(finished(QNetworkReply*)), this,
SLOT(slot_replayFinished(QNetworkReply*))); //关联信号和槽 QUrl url("http://linkcloudtech.com/nj/tools/ticket/cn/getcheapprice?f=can-kmg&fd=2018-04-28");
m_manager->get(QNetworkRequest(url));//发送请求
} Dialog::~Dialog()
{
delete ui;
} void Dialog::slot_replayFinished(QNetworkReply *reply){
QTextCodec *codec = QTextCodec::codecForName("utf8");
//使用utf8编码, 这样可以显示中文
QString str = codec->toUnicode(reply->readAll());
//ui->textBrowser->width(800);
ui->textBrowser->setText(str);
reply->deleteLater();//最后要释放replay对象
}

第四步, 编辑界面文件dialog.ui, 把Text Browser控件拖放到窗口中间位置, 它将用来显示获取到的数据

第五步: 点击运行, 可以看到试验效果

Qt.网络开发-通过http的get方式获取数据的更多相关文章

  1. DataReader方式 获取数据的操作

    一.使用DataReader读取为对象List /// <summary> /// 获得数据列表List<>,DataReader 使用参数的 /// </summary ...

  2. 关于 ThinkPHP5 使用 getBy 字段名方式获取数据

    关于 ThinkPHP5 使用 getBy 字段名方式获取数据 有小伙半说怎么全文搜索都没有搜索到 getByName 之类的函数. 其实是在这里.

  3. ie浏览器下get方式获取数据无效问题

    在ie浏览器用get方式获取数据时因为发送得到参数地址都是一样的,所以浏览器会优先从缓存获取数据,而不去服务器请求数据,post由于参数不同所以不会影响. 解决方法: 1.  Internet选项-- ...

  4. JAVA通过HTTP方式获取数据

    测试获取免费天气数据接口:http://www.weather.com.cn/data/sk/101190408.html URL数据如下图: 代码部分: package https; import ...

  5. Java开发学习(十八)----AOP通知获取数据(参数、返回值、异常)

    前面的博客我们写AOP仅仅是在原始方法前后追加一些操作,接下来我们要说说AOP中数据相关的内容,我们将从获取参数.获取返回值和获取异常三个方面来研究切入点的相关信息. 前面我们介绍通知类型的时候总共讲 ...

  6. DataReader方式 获取数据

    /// /// 得到一个对象实体 DataReader方式 /// /// /// 成功返回对象模型,失败返回null public DotNet.Model.Base_Department GetM ...

  7. Hibernate 以流的方式获取数据

    hibernateQuery.setFetchSize(Integer.MIN_VALUE); results = hibernateQuery.scroll(ScrollMode.FORWARD_O ...

  8. 8 Hbase get方式获取数据

    package com.hikvision.hbase.vertify.test; import org.apache.hadoop.conf.Configuration; import org.ap ...

  9. Qt官方开发环境生成的exe发布方式--使用windeployqt(windeployqt是单独的程序,放在低版本qt4目录下也可以运行的)

    Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.因此 Qt 官方开发环境里自带了一个 ...

随机推荐

  1. centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解

    centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...

  2. 转载:Linux内核参数的优化(1.3.4)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19615.html 由于默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改 ...

  3. 火狐mozilla官方ftp站点获取旧版本火狐的下载地址

    http://ftp.mozilla.org/pub/firefox/releases/

  4. javascript 浮点数比较

    Js中两个浮点数比较,不能使用=== 必须用相减绝对值小于极小的一个数字来判断 Math.abs(1/3 - (1-2/3))<0.0001 这样的方式来判断.

  5. ExtJs常用布局--layout详解(含实例)

    序言: 笔者用的ExtJs版本:ext-3.2.0 ExtJs常见的布局方式有:border.form.absolute.column.accordion.table.fit.card.anchor ...

  6. hdu3436 splaytree树模拟队列+离散化缩点

    数据较大,需要先把每个top不会操作到的段缩成一个点,记录其开始和结束的位置,和top能操作到的点一起建立一颗伸展树模拟 然后就是普通的队列模拟操作 /* 不会被top操作到的区间就缩点 通过spla ...

  7. hdu 1455 N个短木棒 拼成长度相等的几根长木棒 (DFS)

    N根短木棒 能够拼成几根长度相等的长木棒 求长木棒的长度 如果答案不止一种 输出最小的 Sample Input95 2 1 5 2 1 5 2 141 2 3 40 Sample Output65 ...

  8. [转] h5上传视频或文件编写

    Html5 finally solves an age old problem of being able to upload files while also showing the upload ...

  9. [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)

    假如你是一个 JavaScript 开发者,你可能见到过 Array.prototype.slice.apply(arguments) 这样的用法,然后你会问,这么写是什么意思呢? 这个语法其实不难理 ...

  10. python全栈开发day18-模块和导入

    1.昨日内容回顾 2.模块和模块导入 1.什么是模块,为什么要模块? py文件就是模块, 把相似的功能放到一个文件,要用的时候 引入就可以直接调用了. import py文件名,导入模块就是执行他的代 ...