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



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

使用笔记本来嵌套我的框架。在我的第一帧中,我制作了添加新客户端(标签和文本框)的表单,并在末尾设置了一个"添加"按钮。问题是它执行与按钮关联的函数而不是单击,并且按钮实际上在单击时不执行任何操作。一直在到处寻找,这似乎是一个罕见的问题。帮助?

据我所知,如评论中所述,您没有正确设置命令。

如果你有一个功能,你需要设置my_button = tk.Button(..., command = my_function)

如果你的函数接受关键字参数,那么你需要像这样传递函数

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

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

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

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

最新更新