【Pyqt实战】全国天气查询小程序(含UI界面,python代码)

简介: 【Pyqt实战】全国天气查询小程序(含UI界面,python代码)

aecbe64f696b4e8595560e5d223e943b.gif



今天用Pyqt做了个全国天气查询的小程序,可以查询全国各地区当前的天气情况,主要包括温度、风力、风向以及湿度这几个天气参数。


第一步:UI界面设计


首先,使用Qtdesigner进行界面设计,如下图:

9ac3981b35fa4855b1f06f467ea259fe.png


设计完成后,将.ui文件转换为.py文件。


第二步:获取天气参数


本程序天气参数主要通过下面这个网站获取:


http://www.weather.com.cn


通过接口APIhttp://www.weather.com.cn/data/sk/城市代码.html,即可获取想要城市或区域的天气信息。


例如获取北京的天气信息,北京代码为‘101010100’:


rep = requests.get('http://www.weather.com.cn/data/sk/101010100.html')
rep.encoding = 'utf-8'
res = rep.json()
print(res)


得到的结果如下:


{'weatherinfo': {'city': '北京', 'cityid': '101010100', 'temp': '27.9', 'WD': '南风', 'WS': '


因此只要知道全国所有地区的代码,即可获取所有地区的参数信息,通过对网站的研究,通过以下接口可以获取到网站内所用到的全国地区代码信息:


https://j.i8tq.com/weather2020/search/city.js


直接在浏览器中输入上述js接口,结果如下:

8553862c87ae44b18047324f30a9acd0.png


我们可以通过requests库,访问这个接口,然后直接将结果保存为本地文件即可得到想要的全国各个区域数据,通过读取本地保存文件即可获取想要的城市区域编码啦。


保存文件代码如下:


url1 = 'https://j.i8tq.com/weather2020/search/city.js'
rep = requests.get(url1)
rep.encoding = 'utf-8'
# 获取返回结果rep.text,仅保存等号后面的字典部分即可
all_result = str(rep.text).split('=')[1]
with open('citycode.txt','w') as f:
    f.write(all_result)
    print('success')


第三步:编写主程序代码


主要是查询函数的编写,内容如下:


    def queryWeather(self):
      # 获取所选择的区域代码
        cityCode = self.getCityCode()
        # 调用查询接口,获取所选择区域的天气信息
        rep = requests.get('http://www.weather.com.cn/data/sk/' + cityCode + '.html')
        rep.encoding = 'utf-8'
        res = rep.json()
        cur_city = self.ui.comb2.currentText()
        cur_region = self.ui.comb3.currentText()
        msg1 = '城市: %s市' % cur_city + '\n'
        msg2 = '风向: %s' % res['weatherinfo']['WD'] + '\n'
        msg3 = '温度: %s' % res['weatherinfo']['temp'] + ' 度' + '\n'
        msg4 = '风力: %s' % res['weatherinfo']['WS'] + '\n'
        msg5 = '湿度: %s' % res['weatherinfo']['SD'] + '\n'
        if cur_city == cur_region:
            result = msg1 + msg2 + msg3 + msg4 + msg5
        else:
            msg_region = '区: %s区' % cur_region + '\n'
            result = msg1 + msg_region + msg2 + msg3 + msg4 + msg5
    # 将信息显示在Text文本控件中
        self.ui.textResult.setText(result)


好啦,到此主要的功能基本完成。


欢迎大家关注我,共同学习交流。

相关文章
|
1月前
|
UED
「Mac畅玩鸿蒙与硬件52」UI互动应用篇29 - 模拟火车票查询系统
本篇教程将实现一个模拟火车票查询系统,通过输入条件筛选车次信息,并展示动态筛选结果,学习事件处理、状态管理和界面展示的综合开发技巧。
70 13
|
2月前
|
存储 小程序 Python
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
### 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序 该程序通过`lunardate`库实现公历与农历的日期转换,支持闰月和跨年处理,用户输入农历节日名称后,可准确计算距离该节日还有多少天。功能包括农历节日查询、倒计时计算等。欢迎使用! (239字符)
224 86
|
2月前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
1407 1
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
3月前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
361 0
|
3月前
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
197 8
|
4月前
|
开发框架 人工智能 小程序
小程序常见的 UI 框架
【10月更文挑战第17天】小程序 UI 框架为开发者提供了便捷的工具和资源,帮助他们快速构建高质量的小程序界面。在选择框架时,需要综合考虑各种因素,以找到最适合项目的解决方案。随着技术的不断进步,UI 框架也将不断发展和创新,为小程序开发带来更多的便利和可能性。
252 2
|
4月前
|
小程序 开发者 UED
支付宝小程序UI/UX设计原则与最佳实践
支付宝小程序UI/UX设计原则与最佳实践
175 6
|
4月前
|
开发框架 小程序 JavaScript
小程序代码丢失!反编译找回
小程序源代码的容易获取问题确实存在一些潜在的安全隐患。然而,现在的小程序开发框架采用像 Babel 这样的打包工具,将 JavaScript 逻辑代码混合在一个文件中并进行转编译,使其变得难以理解。
98 0
小程序代码丢失!反编译找回
|
4月前
|
计算机视觉 Python
基于Dlib的人脸识别客户端(UI界面)
基于Dlib的人脸识别客户端(UI界面)
128 2
|
4月前
|
机器学习/深度学习 数据可视化 计算机视觉
基于opencv的车牌识别系统(UI界面采用tkinter设计)
基于opencv的车牌识别系统(UI界面采用tkinter设计)
94 0

热门文章

最新文章

推荐镜像

更多