📜  使用 Tkinter 模块的Python天气应用程序(1)

📅  最后修改于: 2023-12-03 15:06:51.464000             🧑  作者: Mango

使用 Tkinter 模块的 Python 天气应用程序

本文将介绍如何使用Python语言编写一个天气应用程序。通过该程序,用户可以输入城市名,然后获取该城市的天气预报。

需求
  • Python 3
  • Tkinter模块
  • requests模块
安装

使用 pip 命令安装 requests 模块。

pip install requests

实现

程序主要分为三个部分

  1. 在GUI中输入城市名
  2. 通过API获取城市天气信息
  3. 在GUI中显示天气信息

使用Tkinter来创建GUI,使用requests获取城市天气信息,使用Label控件显示天气预报。

以下是完整的代码片段


import requests
import tkinter as tk

def get_weather(city):
    url = "https://api.openweathermap.org/data/2.5/weather?q={}&appid={}".format(city, "YOUR_API_KEY")
    r = requests.get(url)
    data = r.json()

    weather = {
        "description": data["weather"][0]["description"],
        "temperature": data["main"]["temp"],
        "humidity": data["main"]["humidity"],
        "pressure": data["main"]["pressure"]
    }

    return weather

def show_weather():
    city = entry.get()
    weather = get_weather(city)

    description_label['text'] = 'Description: {}'.format(weather['description'])
    temperature_label['text'] = 'Temperature: {}°C'.format(weather['temperature'] - 273)
    humidity_label['text'] = 'Humidity: {}%'.format(weather['humidity'])
    pressure_label['text'] = 'Pressure: {}hPa'.format(weather['pressure'])

root = tk.Tk()
root.title('Weather App')

input_frame = tk.Frame(root)
input_frame.pack()

entry = tk.Entry(input_frame, width=30)
entry.pack(side=tk.LEFT)

button = tk.Button(input_frame, text='Search', command=show_weather)
button.pack(side=tk.LEFT)

result_frame =tk.Frame(root)
result_frame.pack(pady=20)

description_label = tk.Label(result_frame, font=('Calibri', 14))
description_label.pack()

temperature_label = tk.Label(result_frame, font=('Calibri', 14))
temperature_label.pack()

humidity_label = tk.Label(result_frame, font=('Calibri', 14))
humidity_label.pack()

pressure_label = tk.Label(result_frame, font=('Calibri', 14))
pressure_label.pack()

root.mainloop()

运行

将代码保存为 weather.py,在终端运行以下命令:

python weather.py

程序会打开 Tkinter 窗口,可以输入城市名进行搜索。

总结

本文介绍了如何使用 Python 和 Tkinter 来构建一个天气应用程序。通过使用 requests 模块从 API 中获取天气数据,并通过 Tkinter 将数据显示在 GUI 中。

如果您想改善这个应用程序,您可以添加更多功能,例如显示更多的天气信息、添加一个图标、或者添加一个气象警报,等等。