我读过这么多这样的问题的答案,但他们不 work...So 请不要标记复制.我是一个Python自学者,在Python3.6的Windows上运行。这是密码-
self.btnCalc = Button(self, text = "Calculate", command=self.calculate, bd=10)
self.btnCalc.grid(row = 11, column = 5)
self.btnCalc.bind('<Return>', self.calculate)这是链接对整个代码(计算学校成绩)。
发布于 2017-09-23 15:36:57
我认为您希望在不单击按钮的情况下触发该命令,因此需要将事件绑定到您的主小部件self。
不是将事件绑定到按钮命令,而是直接绑定到命令。当您在父部件上创建绑定时,它对所有子部件、条目都可用.
你可以用这个:
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
https://stackoverflow.com/questions/46381232
复制相似问题