【问题标题】:Event Bindings not working with arrow keys Pycharm事件绑定不适用于箭头键 Pycharm
【发布时间】: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 仅绑定到返回键。这就是&lt;KeyPress-Return&gt; 的意思。
  • 如果你想坚持你目前的做法,你需要绑定到&lt;Key&gt;,并将else语句更改为elif event.keysym == 'Right':

标签: python tkinter pycharm tkinter-canvas


【解决方案1】:

绑定到底部的键而不是同时添加

elif event.keysym == 'Down'

以及其他箭头键或其他字符(如果需要)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多