python -- tkinter -- canvas 的绑定失败,bind_all可以工作

python -- tkinter -- bind for canvas fail, bind_all can work

提问人:Tony Wu 提问时间:11/13/2023 最后编辑:Tony Wu 更新时间:11/13/2023 访问量:45

问:

我尝试绑定 Canvas (tkinter) 的密钥,但是:

1\ my_canvas.bind 将不起作用 2\ my_canvas.bind_all 将起作用

我不确定为什么 my_canvas.bind 无法正常工作。

代码是:

# bind_all can work
# bind can't work
my_canvas.bind_all("<KeyPress-Up>", key_up)
my_canvas.bind_all("<KeyPress-Down>", key_down)
my_canvas.bind_all("<KeyPress-Left>", key_left)
my_canvas.bind_all("<KeyPress-Right>", key_right)

添加focus_set,绑定即可工作

my_canvas.focus_set()
my_canvas.bind("<KeyPress-Up>", key_up)
my_canvas.bind("<KeyPress-Down>", key_down)
my_canvas.bind("<KeyPress-Left>", key_left)
my_canvas.bind("<KeyPress-Right>", key_right)
python tkinter 画布

评论

1赞 acw1668 11/13/2023
仅当小组件具有键盘焦点时,才会触发回调 via。通常,画布最初没有键盘焦点,因此不会执行这些回调。widget.bind(...)

答: 暂无答案