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


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


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

相关文章
|
6天前
|
并行计算 C语言 开发者
优化Python代码的五大技巧
Python作为一种流行的编程语言,在各种应用场景中广泛使用。然而,随着项目规模的增长和需求的变化,Python代码的性能和可维护性也成为了关键问题。本文将介绍优化Python代码的五大技巧,帮助开发者提升代码效率和质量。
|
1天前
|
机器学习/深度学习 人工智能 算法
机械视觉:原理、应用及Python代码示例
机械视觉:原理、应用及Python代码示例
|
1天前
|
存储 缓存 算法
优化Python代码性能的7个技巧
在日常的Python开发中,优化代码性能是一个重要的课题。本文介绍了7个实用的技巧,帮助开发者提高Python代码的执行效率,包括利用生成器表达式、使用适量的缓存、避免不必要的循环等。通过本文的指导,读者可以更好地理解Python代码性能优化的方法,提升自身的编程水平。
|
3天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
21 0
|
3天前
|
人工智能 Python
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
8 0
|
3天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
10 0
|
3天前
|
数据安全/隐私保护 Python
Python中的装饰器:提升代码可读性和灵活性
Python中的装饰器是一种强大的编程工具,能够提升代码的可读性和灵活性。本文将深入探讨装饰器的原理和用法,以及如何利用装饰器来简化代码、实现日志记录、权限控制等功能,从而让你的Python代码更加优雅和高效。
|
3天前
|
测试技术 持续交付 API
Python的UI自动化测试
【4月更文挑战第17天】Python UI自动化测试涉及Selenium(Web)、Appium(移动应用)和PyQt(桌面应用)等框架。基本步骤包括确定测试目标、选择合适框架、安装配置、编写测试脚本、运行调试以及集成到CI/CD流程。注意自动化测试不能完全取代人工测试,应根据需求平衡使用。
8 1
|
9天前
|
数据安全/隐私保护 Python
Python中的装饰器:提升代码可读性与灵活性
Python中的装饰器是一种强大的工具,可以在不改变函数原有逻辑的情况下,为函数添加额外的功能。本文将介绍装饰器的基本概念和用法,并通过实例演示如何利用装饰器提升代码的可读性和灵活性,使代码更加简洁、易于维护。
|
9天前
|
BI 开发者 数据格式
Python代码填充数据到word模板中
【4月更文挑战第16天】