如何使用 tkinter 将功能键绑定到键盘中的键

How do I keybind functions to keys in the keyboard with tkinter

我想制作一个通过按下按钮触发的功能 命令 (b = Button(command = a)) 也将能够接受来自绑定命令的调用。问题是 bind 命令发送了一个变量(事件),而命令没有。我遇到的另一个问题是我无法弄清楚如何 link 对计算机上的物理按键进行操作

我已经尝试 b.bind('a',func) 到 link 物理键并检查了与回车键的绑定

from tkinter import *
def func():
    print("meow")

main = Tk()
bRoll = Button(text = "Hello", command = func)
bRoll.bind('r',func)
bRoll.bind('<Enter>',func)
bRoll.pack()
main.mainloop()

这似乎不起作用,因为它什么也没做,我尝试绑定到 Enter 键 (<Enter>) 以查看发生了什么,它打印了一个错误因为它想向 func 发送一个事件,但它无法接受它。

  1. 将按钮绑定到事件没有任何意义。基本上你想要的是当你按下一个键时, func() 应该被调用。为此,在此示例中,您需要将事件绑定到主 window,如 main.bind('r' ,func).
  2. 要消费event,可以将其作为参数添加并初始化 它到 None。另请注意,<Enter> 表示只要您的鼠标指针 输入 按钮小部件而不是 Enter 键。绑定回车键需要使用<Return>

    import tkinter as tk
    
    def func(event=None):
        tk.Label(main, text="Meow").pack()
    
    main = tk.Tk()
    bRoll = tk.Button(text = "Hello", command = func)
    main.bind('r',func)
    bRoll.bind('<Enter>',func)
    bRoll.pack()
    
    main.mainloop()
    

请注意,在上面的演示中,最初我按下了键 R

我也无法使用鼠标按钮和键盘访问相同的(一个)功能。 我刚刚做了

entery. bind(("<Return>") ,lambda event:function_name().focus())

成功了。