如何在代码运行后立即解决按钮命令无法执行的问题?

时间:2019-06-01 00:56:24

标签: python function button tkinter

我试图按一个按钮来从另一个名为validate.py的文件中执行功能,但该功能似乎在我运行代码后立即执行,而在我实际按下该代码时却没有执行?

按钮的代码:

id_validate = ttk.Button(id_frame, text='Validate', 
command=validate.validate(pack_id.get()))

这是函数的代码:

def validate(pack_id):
    print('vAliDAte')
    return True

我希望该函数在每次单击按钮并在控制台中打印“ validate”时执行,但是它仅在我运行代码后立即执行一次,并且在按下按钮时不响应。

如何在运行代码时停止执行代码,而仅在按下按钮时执行代码?

1 个答案:

答案 0 :(得分:0)

该函数执行是因为您调用了它;以括号结尾的函数名称。

command属性只需要函数的名称。

但是,您可以使用lambda解决此问题:

command=lambda: validate(pack_id.get())

关于在函数中使用名称pack_id的警告:您已经在全局范围内使用参数pack_id.get()调用函数时使用了该名称。这可能会引起问题。