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
我已经阅读了很多此类问题的其他答案,但它们不有效...所以请不要不要标记它重复... 我是 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