Python 使用tkinter的OpenWeatherMap pyowm存在问题
我想写一个小天气应用程序。我正在使用pyowm和tkinter模块,我有一个小问题,我不知道如何解决。帮助我,请:)我想天气结果显示在标签下的按钮。 这是我的代码:Python 使用tkinter的OpenWeatherMap pyowm存在问题,python,tkinter,Python,Tkinter,我想写一个小天气应用程序。我正在使用pyowm和tkinter模块,我有一个小问题,我不知道如何解决。帮助我,请:)我想天气结果显示在标签下的按钮。 这是我的代码: from tkinter import * import pyowm def open_weather_map(): owm = pyowm.OWM('061c88a24ac0ad18ae22534accea424a') city_name = entry1.get() observation = owm
from tkinter import *
import pyowm
def open_weather_map():
owm = pyowm.OWM('061c88a24ac0ad18ae22534accea424a')
city_name = entry1.get()
observation = owm.weather_at_place()
w = observation.get_weather()
temp = w.get_temperature(unit = 'celsius')
label1['text'] = temp
window = Tk()
window.geometry('400x500')
window.title('Weather')
entry1 = Entry(window, width = 25, font = ('Arial', 14))
entry1.pack()
button1 = Button(window, text = 'Submit', font = ('Arial', 16))
button1.pack()
label1 = Label(window, font = ('Arial', 20, 'bold'))
label1.pack()
button1.bind("<Button-1>", open_weather_map)
window.mainloop()
Tkinter自动将事件参数传递给事件处理程序。您需要将
open\u weather\u map()
的定义更改为:
def开放天气图(事件):
或者,您可以保持定义不变,删除
button1.bind(“,打开天气图)
并将command=open\u weather\u map
添加到按钮1
:
button1=按钮(窗口,文本='Submit',字体=('Arial',16),命令=打开天气图)
更改为def open\u weather\u map(事件):
。请仔细阅读,非常感谢
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\asgor\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
return self.func(*args)
TypeError: open_weather_map() takes 0 positional arguments but 1 was given