Tkinter <Return> 函数不工作

Tkinter <Return> function not working

我已经阅读了很多此类问题的其他答案,但它们有效...所以不要不要标记它重复... 我是 Python 自学者,运行 在 Windows 在 Python 3.6。 这是代码-

self.btnCalc = Button(self, text = "Calculate", command=self.calculate, bd=10)
self.btnCalc.grid(row = 11, column = 5)
self.btnCalc.bind('<Return>', self.calculate)

This is the link到整个代码(计算学校成绩)。

我认为您想在不单击按钮的情况下触发命令,因此您需要将事件绑定到您的主窗口小部件,self

您不将事件绑定到按钮命令,而是直接绑定到命令。当您在父级上创建绑定时,它可用于所有子级小部件,Entry...

你可以使用这个:

self.bind('<Return>', self.calculate) 
# or self.bind('<KP_Enter>', self.calculate) to trigger numpad Return

但是你的方法calculate必须有一个事件参数,即使你不使用它:

def calculate(self, event=None):

关于事件的解释:

当您使用方法 widget.bind(...) 将函数绑定到事件时,tkinter 使用 一个 参数调用函数:事件。它包含有关触发操作的信息,例如鼠标坐标,或正确处理事件的任何相关细节。

您还没有在您的函数中使用它(还没有?),但是您需要声明它。

然后,当您使用按钮和绑定中的函数时,必须将其声明为可选参数,默认值:None, 因为按钮内的命令在调用函数时不会生成此 event 参数。

http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm