嵌入式图形界面设计_综合实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式图形界面设计报告

班级:计算机科学与技术15-2班

小组成员:刘航征、安宝、曲晗羽

杨祎涵、张振、李雪辰

2017年12月

一、前言

天气预报(测)或气象预报(测)是使用现代科学技术对未来某一地点地球大气层的状态进行预测。从史前人类就已经开始对天气进行预测来相应地安排其工作与生活(比如农业生产、军事行动等等)。今天的天气预报主要是使用收集大量的数据(气温、湿度、风向和风速、气压等等),然后使用目前对大气过程的认识(气象学)来确定未来空气变化。由于大气过程的混乱以及今天科学并没有最终透彻地了解大气过程,因此天气预报总是有一定误差的。

最传统的数据是在地面或海面上通过专业人员、爱好者、自动气象站或者浮标收集的气压、气温、风速、风向、湿度等数据。世界气象组织协调这些数据采集的时间,并制定标准。这些测量分每小时一次(METAR)或者每六小时一次(SYNOP)。

该项目为一款天气预报软件,基于Qt5开发,具有查询指定城市天气、显示当天天气状况以及未来四天天气大致状况的主要功能,次要功能为更换软件皮肤,显示当天感冒指数等功能。

软件预览图:

二、选用的技术基本说明

1、Qt JSON操作

QJsonDocument

QJsonDocument 类用于读和写JSON 文档。

一个JSON 文档可以使用QJsonDocument::fromJson() 从基于文本的表示转化为QJsonDocument,toJson() 则可以反向转化为文本。解析器非常快且高效,并将JSON 转换为Qt 使用的二进制表示。

已解析文档的有效性,可以使用!isNull() 进行查询。

如果要查询一个JSON 文档是否包含一个数组或一个对象,使用isArray() 和isObject()。包含在文档中的数组或对象可以使用array() 或object() 检索,然后读取或操作。

也可以使用fromBinaryData() 或fromRawData() 从存储的二进制表示创建来JSON 文档。

QJsonArray

QJsonArray 类封装了一个JSON 数组。

JSON 数组是值的列表。列表可以被操作,通过从数组中插入和删除QJsonValue 。

一个QJsonArray 可以和一个QVariantList 相互转换。可以使用size() 来查询条目的数量,通过insert() 在指定索引处插入值,removeAt() 来删除指定索引的值。

QJsonObject

QJsonObject 类封装了一个JSON 对象。

一个JSON 对象是一个“key/value 对”列表,key 是独一无二的字符串,value 由一个QJsonValue 表示。

一个QJsonObject 可以和一个QVariantMap 相互转换。可以使用size() 来查询“key/value 对”的数量,通过insert() 插入“key/value 对”,remove() 删除指定的key。

QJsonValue

QJsonValue 类封装了一个值。

JSON 中的值有6 种基本数据类型:

∙bool(QJsonValue::Bool)

∙double(QJsonValue::Double)

∙string(QJsonValue::String)

∙array(QJsonValue::Array)

∙object(QJsonValue::Object)

∙null(QJsonValue::Null)

一个值可以由任何上述数据类型表示。此外,QJsonValue 有一个特殊的标记来表示未定义的值,可以使用isUndefined() 查询。

值的类型可以通过type() 或isBool()、isString() 等访问函数查询。同样地,值可以通过toBool()、toString() 等函数转化成相应的存储类型。

QJsonParseError

QJsonParseError 类用于在JSON 解析中报告错误。

枚举QJsonParseError::ParseError:

该枚举描述JSON 文档在解析过程中所发生的错误类型。

2、Qt XML 操作

QXmlStreamReader

用于读取格式良好的XML文档的快速解析器,该类最快且最易于使用,并提供了与其他Qt兼容的应用程序编程接口,很适用于编写单通道解析器;

3、QNetworkAccessManager

QNetworkAccessManager类允许应用程序发送网络请求和接收网络应答。

三、方案设计

1、初始化UI界面

2、获取当前地区时间

3、从文件中读取每个城市名称以及其代码,将其组合分别存入QMap类对象citykeys中

4、用预设的url发送http请求,获取本地城市名称

5,、用获取的本地城市名称获取citykeys中对应的城市代码发出查询未来五天天气的http请求

6、收到的回复为JSON文档,用QJsonDocument类解析JSON文档,将得到的未来五天的天气信息分别存入Forecast结构体数组forecast的每一个元素中,将这些信息显示在主窗口中对应的控件上,然后发出查询今天天气的http请求

7、收到的回复为XML格式文档,用QXmlStreamReader类读取其信息,将当天的天气信息存入Today 结构体today中,将这些信息显示在主窗口中对应的控件上。

8、设置搜索按钮以及换肤按钮的信号与槽的关联。流程图

四、详细代码解析

ui设计界面:

相关文档
最新文档