我正在尝试使Python Tkinter程序显示一个圆,并在按Return/Enter时将圆圈向右移动。我的代码是:Python Tkinter:为什么widget.bind()不工作?
from Tkinter import *
class GUI(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.setupStuff()
def setupStuff(self):
self.canvas = Canvas(self, height=500, width=600)
self.canvas.pack()
self.blueCircle = self.canvas.create_oval(10, 10, 40, 40, fill='dodger blue')
self.canvas.bind('<Return>', self.moveRight)
def moveRight(self):
print 'Yo',
self.canvas.move(self.blueCircle, 1, 0)
print 'yo'
if __name__ == '__main__':
window = GUI(Tk())
window.mainloop()
我的问题是,当我按下Return/Enter时球不动。
关键事件仅传递给当前具有键盘焦点的窗口小部件。您可以调用'.focus_set()'将焦点放在您的画布上,但在根窗口本身而不是画布上进行事件绑定可能更容易。 – jasonharper