gpt4 book ai didi

python - OptionMenu 命令功能需要参数

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:43 24 4
gpt4 key购买 nike

这是一个关于 tkinter 中的选项菜单小部件的非常普遍的问题。

当定义一个 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):

似乎有效。但是为什么?

最佳答案

回调通常想知道选择了哪个项目,因此将 IntVar 的值作为参数传递。如果您想忽略该参数,您可以简单地使用 lambda(_ 是一个有效名称,通常用于指示它是一个一次性变量):

mymenu = OptionMenu(root, optionvar, *t, command=lambda _: update())

关于python - OptionMenu 命令功能需要参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com