【发布时间】:2022-01-14 05:30:21
【问题描述】:
from tkinter import *
from math import *
window = Tk()
window.title('miles and km converter')
window.minsize('500', '300')
window.config(padx=20, pady=20)
input_user = Entry()
input_user.insert(END, string="0")
input_user.grid(row=0, column=1)
Label(text='is equal to').grid(row=1, column=0)
converted = Label(text='')
converted.grid(row=1, column=1)
def button_action(factor):
saved_user_input = round(float(input_user.get()) * float(factor), 2)
mybutton = Button(text='calculate', command=button_action)
mybutton.grid(row=2, column=1)
from_point = Label(text='')
from_point.grid(row=0, column=2)
to_point = Label(text='')
to_point.grid(row=1, column=2)
def to_miles():
from_point['text'] = 'km'
to_point['text'] = 'miles'
converted['text'] = button_action(factor=1)
def to_km():
from_point['text'] = 'miles'
to_point['text'] = 'km'
converted['text'] = button_action(factor=2)
radio_state = IntVar()
radio_1 = Radiobutton(text="km to miles", value=1,
variable=radio_state, command=to_miles)
radio_2 = Radiobutton(text="miles to km", value=2,
variable=radio_state, command=to_km)
radio_1.grid(row=3, column=3)
radio_2.grid(row=3, column=4)
window.mainloop()
由于某种原因,我收到以下错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1885, in __call__
return self.func(*args)
TypeError: button_action() missing 1 required positional argument: 'factor'
为什么会这样?我已经在 button_action() 中声明了参数“因素”。我也为函数提供了参数。这是否与我的代码放置有关?
【问题讨论】:
-
commandButton选项的回调期望没有参数。