我试图按一个按钮来从另一个名为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”时执行,但是它仅在我运行代码后立即执行一次,并且在按下按钮时不响应。
如何在运行代码时停止执行代码,而仅在按下按钮时执行代码?
答案 0 :(得分:0)
该函数执行是因为您调用了它;以括号结尾的函数名称。
command属性只需要函数的名称。
但是,您可以使用lambda解决此问题:
command=lambda: validate(pack_id.get())
关于在函数中使用名称pack_id的警告:您已经在全局范围内使用参数pack_id.get()
调用函数时使用了该名称。这可能会引起问题。