当我按下菜单栏时,我试图从函数中获取值,但我不知道怎么做:
假设我有下一个函数:
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菜单栏时,它只给了我“无”值。。。 有什么帮助吗?你知道吗
Menu.add_command
不会返回任何东西(至少据我所知),这也是为什么会得到None的部分原因。你知道吗当您执行
command=other2(x)
时,它实际上并没有执行您期望的操作,它实际上使command
等于other2(x)
的返回值,因为函数调用是在运行时计算的。你本想做command=lambda x=x: other2(x)
。你知道吗如果您正在执行
x=Insert.add_command(...)
来保留对命令的引用,以便以后可以使用edit命令,那么就不是这样做的。您可以通过Menu.entryconfigure(index)
配置命令,并通过Menu.entrycget(index)
访问其配置,而索引是添加命令项的位置/顺序。http://tcl.tk/man/tcl8.5/TkCmd/menu.htm#M55。你知道吗相关问题 更多 >
编程相关推荐