【发布时间】:2019-08-15 20:36:20
【问题描述】:
我正在尝试使用事件绑定对这个三角形做一些基本动画(我对编码有点陌生),如果我按下箭头键,三角形将朝那个方向移动,如果我按下回车键,它会移动向右。
当我尝试运行代码时,“回车”键会移动三角形,但箭头键不会。我从我正在为 python 阅读的书中复制了这个。有人知道我的代码有什么问题吗?
(编辑:对不起,我输入了错误的代码)
from tkinter import*
tk = Tk()
canvas = Canvas(tk, width=400, height=400)
canvas.pack()
canvas.create_polygon(10, 10, 10, 60, 50, 35)
def movetriangle(event):
if event.keysym == 'Up':
canvas.move(1, 0, -3)
elif event.keysym == 'Down':
canvas.move(1, 0, 3)
elif event.keysym == 'Left':
canvas.move(1, -3, 0)
else:
canvas.move(1, 3, 0)
canvas.bind_all('<KeyPress-Return>', movetriangle)
tk.mainloop()
我希望箭头键为三角形设置动画,但我的代码中似乎有错误。
有人可以帮忙吗?
谢谢。
【问题讨论】:
-
您只是绑定到 Return 键。看看
bind_all命令。 -
移动三角形没有绑定@BryanOakley?
-
movetriangle仅绑定到返回键。这就是<KeyPress-Return>的意思。 -
如果你想坚持你目前的做法,你需要绑定到
<Key>,并将else语句更改为elif event.keysym == 'Right':。
标签: python tkinter pycharm tkinter-canvas