【发布时间】:2021-02-26 04:21:04
【问题描述】:
这是一个关于 tkinter 中的 optionmenu 小部件的非常普遍的问题。
当定义一个 OptionMenu 小部件,并指定一个函数作为它的命令时,为什么它需要一个参数?
我的代码:
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()
我的错误:
TypeError: update() takes 0 positional arguments but 1 was given
简单地定义更新
def update(foo):
似乎有效。但为什么呢?
【问题讨论】:
标签: python python-3.x tkinter