Python 3.4.2 tkinter菜单自动调用功能

时间:2015-08-27 14:49:20

标签: python function tkinter menuitem python-3.4

我对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()

我无法看清它有什么问题,但我确定这里有一些可怕的错误

1 个答案:

答案 0 :(得分:2)

lo_menugroup.add_command(label="Command", command=f_message())

回调不应该有括号。实际上,f_message被立即调用,其返回值被赋值给command,而不是函数对象本身。

lo_menugroup.add_command(label="Command", command=f_message)