我正在努力用打印的信息绑定左箭头按下。有什么想法吗?我搜索了这个网站,似乎遵循了其他人使用的相同说明,但它仍然无法正常工作!我是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()
答案 0 :(得分:2)
在您撰写的上下文中,onArrowKey
没有定义。将def onArrowKey
移出FullScreenApp
班级,以便上下文正确,或拨打app.onArrowKey
而不是onArrowKey
(在分配应用后)。
答案 1 :(得分:1)
我想你应该在你班级的root.bind('<Left>', onArrowKey)
中移动有问题的陈述(__init__
):
master.bind('<Left>', self.onArrowKey)