Qt.网络开发-通过http的get方式获取数据
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方式获取数据的更多相关文章
- DataReader方式 获取数据的操作
一.使用DataReader读取为对象List /// <summary> /// 获得数据列表List<>,DataReader 使用参数的 /// </summary ...
- 关于 ThinkPHP5 使用 getBy 字段名方式获取数据
关于 ThinkPHP5 使用 getBy 字段名方式获取数据 有小伙半说怎么全文搜索都没有搜索到 getByName 之类的函数. 其实是在这里.
- ie浏览器下get方式获取数据无效问题
在ie浏览器用get方式获取数据时因为发送得到参数地址都是一样的,所以浏览器会优先从缓存获取数据,而不去服务器请求数据,post由于参数不同所以不会影响. 解决方法: 1. Internet选项-- ...
- JAVA通过HTTP方式获取数据
测试获取免费天气数据接口:http://www.weather.com.cn/data/sk/101190408.html URL数据如下图: 代码部分: package https; import ...
- Java开发学习(十八)----AOP通知获取数据(参数、返回值、异常)
前面的博客我们写AOP仅仅是在原始方法前后追加一些操作,接下来我们要说说AOP中数据相关的内容,我们将从获取参数.获取返回值和获取异常三个方面来研究切入点的相关信息. 前面我们介绍通知类型的时候总共讲 ...
- DataReader方式 获取数据
/// /// 得到一个对象实体 DataReader方式 /// /// /// 成功返回对象模型,失败返回null public DotNet.Model.Base_Department GetM ...
- Hibernate 以流的方式获取数据
hibernateQuery.setFetchSize(Integer.MIN_VALUE); results = hibernateQuery.scroll(ScrollMode.FORWARD_O ...
- 8 Hbase get方式获取数据
package com.hikvision.hbase.vertify.test; import org.apache.hadoop.conf.Configuration; import org.ap ...
- Qt官方开发环境生成的exe发布方式--使用windeployqt(windeployqt是单独的程序,放在低版本qt4目录下也可以运行的)
Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.因此 Qt 官方开发环境里自带了一个 ...
随机推荐
- .NET CORE 1.1 迁移到.NET 2.0正式版
以下操作参考官方文档 1:首先你需要升级到最新版的VS 2017 15.3 升级的地方在VS右上角有个黄色的更新提醒,如果没有请挂VPN或者重新下载一个新的. 2:第二步 和之前改.NET Frame ...
- CentOS 6.5自动化运维之基于cobbler服务的自动化安装操作系统详解
一.Cobbler安装 前提:cobbler由epel源提供,故此需要事先配置指向epel的yum源方可进行类似下面的安装过程. # yum install -y epel-release # yum ...
- Android 颜色透明度换算
每次开发的时候,UI在设计图中标注的颜色都是类似于#FF0000(红色),这倒没什么,但是呢后面却标注了30%的透明度,这下抓狂了,透明度怎么计算?不用着急,不用你算,收藏我这篇文章即可. 颜色简介 ...
- Json学习整理
1:javascript对JSON的支持 2:java对JSON的支持 alibaba->fastjson 封装工具类: import com.alibaba.fastjson.JSONObje ...
- jquery中对父节点和子节点的利用
<tr id='new_tr'> <td id="td_1">td1</td> <td id="td_2">td ...
- 【noip模拟赛5】细菌
描述 近期,农场出现了D(1<=D<=15)种细菌.John要从他的 N(1<=N<=1,000)头奶牛中尽可能多地选些产奶.但是如果选中的奶牛携带了超过 K (1<=K ...
- 【Java】 剑指offer(41) 数据流中的中位数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中 ...
- 085 HBase的二级索引,以及phoenix的安装(需再做一次)
一:问题由来 1.举例 有A列与B列,分别是年龄与姓名. 如果想通过年龄查询姓名. 正常的检索是通过rowkey进行检索. 根据年龄查询rowkey,然后根据rowkey进行查找姓名. 这样的效率不高 ...
- fork调用的底层实现
fork调用的内核实现: http://www.cnblogs.com/huangwei/archive/2010/05/21/1740794.html http://blog.csdn.net/he ...
- BeanUtils进行日期格式的拷贝转换
自定义Converter的方法: import java.text.ParseException; import java.text.SimpleDateFormat; import org.apac ...