当我按下菜单栏时,我正试图从函数中获取值,但我不知道该怎么做:
假设我有下一个功能:
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菜单栏时,它只给了我'无'的价值...... 有什么帮助吗?
答案 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