从命令方法Tkinter Python调用的函数中获取参数

时间:2018-06-10 00:16:06

标签: python methods tkinter return-value

当我按下菜单栏时,我正试图从函数中获取值,但我不知道该怎么做:

假设我有下一个功能:

def other1():
    return 10
def other2(a):
    print(a)
Insert = Menu(menubar, tearoff=0)
x=Insert.add_command(label="InsertA1", command=other1)
Insert.add_command(label="InsertA2", command=other2(x))

当我试图按下InsertA2菜单栏时,它只给了我'无'的价值...... 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

Menu.add_command没有返回任何内容(至少据我所知),这部分是为什么你得到一个无。

执行command=other2(x)时,它实际上没有按预期执行,它实际上使command等于other2(x)的返回值,因为函数调用是在运行时计算的。你打算做command=lambda x=x: other2(x)

如果您正在执行x=Insert.add_command(...)以保留对该命令的引用,以便您以后可以使用它进行编辑,那么这不是您的操作方式。您可以按Menu.entryconfigure(index)配置命令,并通过Menu.entrycget(index)访问其配置,而索引是您添加命令条目的位置/顺序。 http://tcl.tk/man/tcl8.5/TkCmd/menu.htm#M55