This is a pretty general question about the optionmenu widget in tkinter.
When defining an OptionMenu widget, and assigning a function as its command, why does it require an argument?
My code:
from tkinter import *
def update():
x = optionvar.get()
x = str(x)
mylabel.config(text=x)
root = Tk()
l = []
for n in range(10):
l.append(n)
t = tuple(l)
optionvar = IntVar()
optionvar.set('hello stackoverflow')
mymenu = OptionMenu(root, optionvar, *t, command=update)
mylabel = Label(root)
mymenu.pack()
mylabel.pack()
My errors:
TypeError: update() takes 0 positional arguments but 1 was given
Simply defining update with
def update(foo):
seems to work. But why?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…