ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Python实战 -- PySide6 制作天气查询软件

2026/8/8 1:39:39 拓冰建站 浏览量
Python实战 -- PySide6 制作天气查询软件

一、环境准备

开发环境:Python 3.9.2 pycharm PySide6

申请天气情况 API :https://console.amap.com/dev/key/app
在这里插入图片描述

designer 设计

ui 目录下 Weather.ui 转换为 Weather.py
在这里插入图片描述

结果显示

在这里插入图片描述

二、完整代码

import sysfrom PySide6 import QtWidgetsimport ui.Weatherfrom PySide6.QtWidgets import QApplication, QDialogimport requestsclass Dialog(QtWidgets.QDialog):def __init__(self):super(Dialog, self).__init__()self.clearBtn = Noneself.myDlg = ui.Weather.Ui_Dialog()self.myDlg.setupUi(self)def queryWeather(self):cityName = self.myDlg.comboBox.currentText()cityCode = self.getCode(cityName)r = requests.get("https://restapi.amap.com/v3/weather/weatherInfo?key=6778d1f26467c63988b2a037903bbb21&city={}".format(cityCode))# r.encoding = 'utf-8'if r.status_code == 200:data = r.json()['lives'][0]weatherMsg = '城市:{}\n天气:{}\n温度:{}\n风向:{}\n风力:{}\n湿度:{}\n发布时间:{}\n'.format(data['city'],data['weather'],data['temperature'],data['winddirection'],data['windpower'],data['humidity'],data['reporttime'],)else:weatherMsg = '天气查询失败,请稍后再试!'self.myDlg.textEdit.setText(weatherMsg)def getCode(self, cityName):cityDict = {"陕西": "610000","北京": "110000","苏州": "320500","上海": "310000"}return cityDict.get(cityName, '101010100')def clearText(self):self.myDlg.textEdit.clear()if __name__ == '__main__':myapp = QApplication(sys.argv)myDlg = Dialog()myDlg.show()myDlg.exec()

三、参考

https://zhuanlan.zhihu.com/p/60815507
链接:https://pan.baidu.com/s/15NOyb8FqPwuJVerRtsgzww
提取码:kwk4

https://zhuanlan.zhihu.com/p/446137829