我对python的tkinter gui非常陌生,我正试图用它来构建一个基本的测试。
我创建了一个菜单,其中一个菜单项必须调用一个函数,虽然当我运行程序时,我可以在单击菜单项之前看到函数的输出,当单击菜单项时它不会调用功能
我的代码如下
from tkinter import *
class cl_main():
def __init__(self, master):
lo_mainmenu = Menu(master)
lo_mainmenu.option_add('*tearOff', FALSE)
master.config(menu=lo_mainmenu)
lo_menugroup = Menu(lo_mainmenu)
lo_mainmenu.add_cascade(label="MenuGroup")
lo_menugroup.add_command(label="Command", command=f_message())
def f_message():
print ("This Function Has Been Called")
root = Tk()
co_main = cl_main(root)
root.mainloop()
我无法看清它有什么问题,但我确定这里有一些可怕的错误
答案 0 :(得分:2)
lo_menugroup.add_command(label="Command", command=f_message())
回调不应该有括号。实际上,f_message
被立即调用,其返回值被赋值给command
,而不是函数对象本身。
lo_menugroup.add_command(label="Command", command=f_message)