【发布时间】:2019-05-25 20:47:27
【问题描述】:
以下代码来自我现在正在阅读的一本书,但是当它运行时,无论按什么方向键,都只会向一个方向(向左)移动:
#!/usr/bin/env python3
from tkinter import *
def mtri(event):
if event.keysym == 'up':
c.move(1, 0, -3)
elif event.keysym == 'down':
c.move(1, 0, 3)
elif event.keysym == 'right':
c.move(1, 3, 0)
else:
c.move(1, -3, 0)
r = Tk()
c = Canvas(r, width=400, height=400)
c.pack()
c.create_polygon(10, 10, 10, 60, 50, 35)
#c.bind_all('<KeyPress-Up>', mtri)
#c.bind_all('<KeyPress-Down>', mtri)
#c.bind_all('<KeyPress-Right>', mtri)
#c.bind_all('<KeyPress-Left>', mtri)
c.bind_all('<Key>', mtri)
r.mainloop()
我对此感到困惑,有人可以帮忙检查上面的代码是否有任何问题吗?
谢谢!
【问题讨论】:
-
您应该做的第一件事是验证
event.keysym是您认为的那样。提示:不是。尝试在mtri的开头打印出event.keysym。 -
@BryanOakley 不错的建议。抱歉,我无法对您的评论投赞成票,因为我的声誉尚未超过阈值。我尝试了您的建议,现在我看到打印输出中的
event.keysym是什么。