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

2024-10-04 01:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

假设我有下一个函数:

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菜单栏时,它只给了我“无”值。。。 有什么帮助吗?你知道吗


Tags: 函数addreturndeflabelcommandmenuinsert
1条回答
网友
1楼 · 发布于 2024-10-04 01:35:37

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。你知道吗

相关问题 更多 >