如何绑定根以调用类内的方法
这是我程序的基本布局:
class App(CheckInfo):
def __init__(self, master):
CheckInfo.__init__(self)
master.title("Example")
.....
接下来,我在类 App 里面有一个方法,内容是这样的:
def moveIt(self):
print "It doesnt work"
在底部(类外面),我有:
root = Tk()
app = App(root)
#root.bind("<Up>",) # I don't know how this works
root.mainloop()
我想把这个 root
绑定起来,这样在窗口的任何时候我都可以按上箭头键来调用这个方法。
我不太确定该怎么做。
到目前为止,我的猜测进展不大。
我觉得我可能需要把事件放进:moveIt(self)
=> moveIt(self,event)
但是我不知道怎么把这个方法作为参数放进绑定里,因为:
root.bind("<Up>",moveIt) #doesnt work
root.bind("<Up>",self.moveIt) #obviously not
root.bind("<Up>",root.moveIt) #donsnt make much sense
任何想法都很受欢迎!我希望我已经贴出了所有相关的代码,如果还有需要澄清的地方,请随时问我。
提前谢谢大家。
1 个回答
1
你的实验可能没有成功,因为默认情况下,框架是不会自动获取键盘焦点的。你可以尝试加上 root.focus(),这样键盘事件就会被发送到根窗口。
你问题的另一部分是关于如何进行绑定的。因为 moveIt 是 App 类的方法,而 'app' 是这个类的一个实例,所以你需要这样做:
root.bind("<Up>", app.moveIt)