如何在Tkin中生成多个键

2024-09-29 23:28:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着按下多个键,但是focus\u set()命令只允许按下一个按钮,其余的键不起作用。如果你点击这个按钮,它就会工作,但是我想通过键盘来使用这个按钮,那么我该如何使每个键都工作呢

btnUp = tkinter.Button(master=None, text="Up", command=up)
btnUp.bind("w", up)
btnUp.focus_set()
btnUp.pack(side=tkinter.TOP, anchor=tkinter.W)

btnRight = tkinter.Button(master=None, text="Right", command=right)
btnRight.bind("d", right)
btnRight.focus_set()
btnRight.pack(side=tkinter.TOP, anchor=tkinter.W)

btnLeft = tkinter.Button(master=None, text="Left", command=left)
btnLeft.bind("a", left)
btnLeft.focus_set()
btnLeft.pack(side=tkinter.TOP, anchor=tkinter.W)

btnDown = tkinter.Button(master=None, text="Down", command=down)
btnDown.bind("s", down)
btnDown.focus_set()
btnDown.pack(side=tkinter.BOTTOM, anchor=tkinter.W)

Tags: textmasternonebindtkinterbuttonsidecommand
1条回答
网友
1楼 · 发布于 2024-09-29 23:28:12

您必须绑定到按钮所在的小部件。为了获得最大的效果,绑定到根。你知道吗

btnUp = tkinter.Button(master=None, text="Up", command=up)
root.bind("w", up)
btnUp.pack(side=tkinter.TOP, anchor=tkinter.W)

如果您无权访问该范围内的根目录,则可以将其添加到顶部:

root = tkinter._default_root

请记住,Button命令回调和bind回调具有不同的签名,因此需要使用如下可选事件参数定义函数:

def up(event=None):
    # code

相关问题 更多 >

    热门问题