|
|
麒麟天气是一款程序开源的天气预报软件。通过获取实时权威气象数据信息,让使用者可以随意查看全国各地未来7天内的天气状况。下面就为大家简单的介绍一下麒麟天气的主要功能。
安装编程开发依赖包:
$ sudo apt install debhelper (>=9) qtbase5-dev qt5-qmake qtchooser qtscript5-dev qttools5-dev-tools qtbase5-dev-tools libgeoip-dev libx11-dev libgsettings-qt-dev pkgconf
从程序和功能的角度来说,麒麟天气主要分为以下几部分:
获取实时天气数据信息
快速城市切换
城市收藏和切换
1
Qt获取实时天气信息
对于天气预报类的软件,首要的就是一些关键信息的获取。Qt获取网络信息主要用到了QtNetwork 模块。使用 QtNetwork 模块的时候,必须要在工程的pro文件中添加:QT += network。
麒麟天气程序主要用到了 QtNetwork 模块的三个类:
1)QNetworkRequest类:用于表示网络请求,包含在网络上发送请求的必要信息(一个URL和一些可以用来修改请求的附加信息)。
2)QNetworkAccessManager类:用于协调网络操作,一旦创建一个 request,应用程序就可以使用它通过网络发送请求。该类提供了一组标准函数,它们接收请求和可选数据,每个函数都返回一个 QNetworkReply 对象。QNetworkAccessManager 将收到的请求排队,并行执行的请求数取决于协议。目前,对于桌面平台上的HTTP协议,一个主机/端口组合并行执行6个请求。
3)QNetworkReply类:用于网络请求的响应,当一个 request 被发出后,QNetworkAccessManager 就会创建相应的响应,通过 QNetworkReply 提供的信号可以单独监听每个响应,或者使用 manager 的信号。
获取到的信息将用来构建麒麟天气的主界面,如图1所示,包括下面这些信息,温度,天气状况(晴,多云,阴天等),风力等。这些信息在获取到的同时也会被写入 QGsetting 配置文件中,进行存储或供其他功能模块调用。
另外,在麒麟天气的主界面,滚动鼠标,可以看到展示的生活指数信息:
2
城市切换
在最新版麒麟天气中,主界面设置了搜索框。点击搜索的城市,进行切换,可实现快速切换城市并展示此时的天气状况。左上角城市,首次打开默认为北京。如图3。
无论是城市快速切换或者城市收藏等功能,其使用到的数据信息实时获取后,都需要多次的提取调用。在麒麟天气中,对于这部分的处理,是将这些信息写入 QGsettings 配置文件来进行存储和调用。
QGsettings:进行配置文件的读和写,以及随时监控配置文件中key的变化,并将其他途径导致的key的变化的value更新到代码中。
麒麟天气使用 QGsettings 的另一个功能是可以为其他控件提供接口,比如,其他组件想要显示天气信息,就可以直接绑定其接口并进行功能设计。
3
城市收藏
可以选择自己比较关注的几个城市,添加到收藏下,默认最多可收藏8个城市。
首先,点击主界面左上角的加号按钮,可以触发弹出子窗口的事件。如图4,在白色背景的子窗口的界面中,有当前城市和收藏城市两个标题。当前城市的标题下,是目前主界面所展示的城市的简略信息。
点击收藏城市下的"+"按钮,又会触发另一个子界面,如图5。在这里可以搜索想要关注的城市,点击后,就可以看到收藏城市标题下就多出了所选择的城市。
以上就是麒麟天气的介绍,还有很多知识没有分析到,有兴趣研究源码的小伙伴可以下载麒麟天气的代码:https://github.com/UbuntuKylin/indicator-china-weather
|
|