Python 3.5.1,Tkinter:函数在启动时执行而不是按钮单击

时间:2016-03-13 04:43:33

标签: python

所以,我正在为当地俱乐部创建一个客户经理软件。 我正在使用Python 3.5.1和Tkinter。

使用Notebook来嵌套我的Frames。 在我的第一帧中,我创建了表单以添加新客户端(标签和文本框)和最后一个“添加”按钮。 问题是它执行与onclick上的按钮相关联的功能,并且该按钮在点击时实际上什么都不做。 一直在寻找,这似乎是一个罕见的问题。 帮助

2 个答案:

答案 0 :(得分:0)

从我可以解读的内容中,如评论中所述,您没有正确设置命令。

如果您有功能,则需要设置my_button = tk.Button(..., command = my_function)

如果你的函数采用关键字参数,那么你需要传递这样的函数

my_button = tk.Button(...., command = lambda: function(argument))

答案 1 :(得分:-1)

我会在命令之前尝试使用lambda:

例如,将readFile(file)替换为lambda: readFile(file)

这将确保传递没有参数的匿名(" lambda")函数,该函数在执行时将运行预期的代码。否则,在设置行为时执行一次该函数,然后每次只重新评估返回的值,而不是调用适当的函数。