的Tkinter 功能不能正常工作
我看了这么多其他的这些问题的答案,但他们不工作...所以请没有标记它复制 ... 我是一名Python自学者,在Python 3.6上运行在Windows上。 这是代码 -的Tkinter <Return>功能不能正常工作
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
。
您不会将事件绑定到按钮命令,而是直接绑定到命令。当您创建一个父一个结合,这是向所有儿童提供小工具,进入...
您可以使用此:
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
罗在Tkinter的,你只需要绑定
你'对,既可以工作,但少于更好... – PRMoureu
但是,当我现在手动(用鼠标)按下按钮,它显示在Tkinter回调 回溯(最近的呼叫最后): 文件“C :\ Python36 \ lib中\ Tkinter的\ __ init__.py”,线1699,在__call__ 返回self.func(*参数) 类型错误:计算()缺少1个所需位置参数:“event'' – avc
什么不行?你其实没有说过。 – SneakyTurtle
当我按下回车键时,按钮不会被执行。 – avc