【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)


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


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

相关文章
|
2月前
|
Web App开发 前端开发 JavaScript
Playwright极速UI自动化实战指南
Playwright告别Selenium痛点,以智能等待、强大选择器、网络拦截与多设备模拟四大利器,提升自动化效率与稳定性。本文通过实战代码详解其加速秘籍,助你构建高效、可靠的UI测试方案。
|
29天前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
2月前
|
存储 消息中间件 人工智能
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
82 4
|
2月前
|
JavaScript 前端开发 开发者
鸿蒙应用开发从入门到实战(六):ArkTS声明式UI和组件化
鸿蒙开发语言ArkTS在继承了Typescrip语法的基础上,主要扩展了声明式UI开发相关的能力。
|
2月前
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
2月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
3月前
|
传感器 人工智能 JavaScript
Playwright实战:写UI自动化脚本,速度直接起飞
简介: 测试工程师老王因UI自动化问题深夜奋战,反映出传统测试工具的局限性。微软开源的Playwright凭借智能等待、跨域操作、移动端模拟与网络拦截等强大功能,正迅速取代Selenium,成为新一代自动化测试标准。其稳定高效的设计显著降低维护成本,助力企业构建高质量测试流程。
|
Python
实战!用 Python 给母亲送祝福!
今天是母亲节,小阿酱在这里祝天下所有的母亲节日快乐,作为女儿的我除了买礼物送惊喜外还要用 Python 送上特殊的祝福! 母亲节(Mother’s Day),是一个感谢母亲的节日。妈妈曾经也是一个女孩子,怕黑怕虫子,也会掉眼泪,笨手笨脚怕扎针,但她温柔了我,温柔了岁月。 借此祝全天下妈妈母亲节快乐!
657 0
实战!用 Python 给母亲送祝福!
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
222 102
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
258 104

热门文章

最新文章