IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Pyqt实战】全国天气查询小程序(含UI界面,python代码) -> 正文阅读

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

在这里插入图片描述


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

第一步:UI界面设计

首先,使用Qtdesigner进行界面设计,如下图:
在这里插入图片描述
设计完成后,将.ui文件转换为.py文件。

第二步:获取天气参数

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

http://www.weather.com.cn

通过接口API:http://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': '小于3级', 'SD': '28%', 'AP': '1002hPa', 'njd': '暂无实况', 'WSE': '<3', 'time': '17:55', 'sm': '2.1', 'isRadar': '1', 'Radar': 'JC_RADAR_AZ9010_JB'}}

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

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

直接在浏览器中输入上述js接口,结果如下:
在这里插入图片描述
我们可以通过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)

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

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

完整代码获取方式:
方式一:
完整的代码,已经打包上传至我的CSDN资源,可直接下载。
方式二:
关注本人下面公众号“阿旭算法与机器学习”,发送:全国天气查询,即可获取下载链接。

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:55:28  更:2022-05-21 18:57:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:44:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码