写一个有GUI的天气查询小程序,可以输入城市,查询后,在GUI上显示当前天气,或者未来天气。 上传代码的同时,上传一个程序运行的截图
时间: 2024-03-04 20:50:23 浏览: 52
微信小程序demo:天气查询及快递查询(源代码+截图)
5星 · 资源好评率100%
好的,我会给您写一个Python的天气查询小程序,并附上GUI界面和代码。但是由于我无法上传图片,所以无法提供程序运行的截图,请您谅解。
```python
import requests
from tkinter import *
def get_weather(city, future=False):
url = 'https://api.seniverse.com/v3/weather/now.json?key=<your_key>&location={0}&language=zh-Hans&unit=c'.format(city)
if future:
url = 'https://api.seniverse.com/v3/weather/daily.json?key=<your_key>&location={0}&language=zh-Hans&unit=c&start=0&days=5'.format(city)
r = requests.get(url)
return r.json()
def show_weather(city, future=False):
data = get_weather(city, future)
if 'status' in data and data['status'] != 'ok':
return data['status']
if future:
result = []
for day in data['results'][0]['daily']:
result.append("{0} 日期:{1} 白天:{2} 夜晚:{3}".format(day['date'], day['date'], day['text_day'], day['text_night']))
return '\n'.join(result)
else:
now = data['results'][0]['now']
return '{0} 当前温度:{1}℃ 天气情况:{2}'.format(city, now['temperature'], now['text'])
def show_gui():
def query_now():
city = city_entry.get()
result = show_weather(city)
result_label.config(text=result)
def query_future():
city = city_entry.get()
result = show_weather(city, future=True)
result_label.config(text=result)
root = Tk()
root.title('天气查询小程序')
city_label = Label(root, text='城市:')
city_label.grid(row=0, column=0)
city_entry = Entry(root)
city_entry.grid(row=0, column=1)
now_button = Button(root, text='查询当前天气', command=query_now)
now_button.grid(row=1, column=0)
future_button = Button(root, text='查询未来天气', command=query_future)
future_button.grid(row=1, column=1)
result_label = Label(root)
result_label.grid(row=2, column=0, columnspan=2)
root.mainloop()
if __name__ == '__main__':
show_gui()
```
在代码中,我们使用了心知天气API来获取天气数据。需要替换代码中的<your_key>为您自己的API Key。您可以在心知天气的官网上注册并获取免费的API Key。
运行程序后,在输入框中输入城市名称并点击按钮,程序会在GUI界面上显示出当前天气或未来天气的信息。
阅读全文