我正在尝试按下多个键,但是命令focus_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)
最佳答案
您必须绑定到Buttons所在的小部件。为了获得最大的效果,请绑定到root。
btnUp = tkinter.Button(master=None, text="Up", command=up)
root.bind("w", up)
btnUp.pack(side=tkinter.TOP, anchor=tkinter.W)
如果您在该范围内无权访问root,则可以将其添加到顶部:
root = tkinter._default_root
请记住,Button命令回调和bind回调具有不同的签名,因此您需要使用可选的事件参数来定义函数,如下所示:
def up(event=None):
# code
关于python - 如何在Tkinter中进行多个键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55191237/