绑定键事件

时间:2016-01-14 18:11:15

标签: python tkinter

我正在努力用打印的信息绑定左箭头按下。有什么想法吗?我搜索了这个网站,似乎遵循了其他人使用的相同说明,但它仍然无法正常工作!我是Python的新手(以及一般的编码),非常感谢帮助!

错误消息:

NameError: name 'onArrowKey' is not defined

相关代码:

from Tkinter import*

class FullScreenApp(object):
    def __init__(self, master):
        self.master=master
        pad=3
        self._geom='200x200+0+0'
        master.geometry("{0}x{1}+0+0".format(
        master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
        master.bind('<Escape>',self.toggle_geom)
    def toggle_geom(self,event):
        geom=self.master.winfo_geometry()
        print(geom,self._geom)
        self.master.geometry(self._geom)
        self._geom=geom
    def onArrowKey(self,event): 
        print 'Got arrow key press'


root=Tk()
root.bind('<Left>', onArrowKey)
root.config(background="black")
root.title("Who buzzed in first?")
app=FullScreenApp(root)
root.mainloop()

2 个答案:

答案 0 :(得分:2)

在您撰写的上下文中,onArrowKey没有定义。将def onArrowKey移出FullScreenApp班级,以便上下文正确,或拨打app.onArrowKey而不是onArrowKey(在分配应用后)。

答案 1 :(得分:1)

我想你应该在你班级的root.bind('<Left>', onArrowKey)中移动有问题的陈述(__init__):

像这样:

master.bind('<Left>', self.onArrowKey)