我有一个接受可选事件的方法。有时它将由小部件命令调用,因此不会发生事件,有时会被绑定到传递事件的Tkinter窗口的按键按下。但是,当通过按键调用该方法时,不会传递通过lambda函数传递的布尔值-该方法始终输出True值(其默认参数)。我究竟做错了什么?这是可行的示例。
import tkinter as tk
class Main(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.button = tk.Button(self, text="Call Method", command=self.meth)
self.button.pack()
self.bind("<Control-s>", lambda var = False : self.meth(var))
def meth(self, *event, var=True):
print(event, var)
if __name__ == '__main__':
main = Main()
main.mainloop()
答案 0 :(得分:1)
好,我知道了。新秀错误。按键应该像这样绑定到lambda event
:
self.bind("<Control-s>", lambda event, var = False : self.meth(var))