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

Nim*_*ort -1 python tkinter key-bindings

我想创建一个通过按下带有命令 ( b = Button(command = a))的按钮触发的函数,该按钮也能够接受来自 bind 命令的调用。问题是 bind 命令发送一个变量(事件)而 command 不发送。我遇到的另一个问题是我无法弄清楚如何将功能链接到计算机上的物理按键

我试图b.bind('a',func)链接物理键并检查与输入键的绑定

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()
Run Code Online (Sandbox Code Playgroud)

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

Mir*_*j50 9

  1. 将按钮绑定到事件没有任何意义。基本上你想要的是当你按下一个键时,func()应该被调用。为此,在此示例中,您需要将事件绑定到主窗口,如main.bind('r' ,func).
  2. 要使用event,您可以将其添加为参数并将其初始化为None。另请注意,这<Enter>意味着只要您的鼠标指针进入按钮小部件而不是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()
    
    Run Code Online (Sandbox Code Playgroud)

演示

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