如何在tkinter中向功能添加键盘快捷键

时间:2020-09-11 21:59:23

标签: python tkinter

我在Tkinter进行了一些研究,发现了root.bind('

我想将此添加到正在创建的应用程序中。

我做了一个按钮,当我单击某个组合键时希望它执行功能。

这是我的代码:

from tkinter import *

root = Tk()
root.geometry("600x600")

def printFunction():
    print("Hello World")

root.bind('<Control-Key-v>', printFunction)

button = Button(root, text="click here", command=printFunction)
button.pack()

root.mainloop()

因此,当我单击按钮时,该功能应执行,而当我单击Ctrl + v时,该功能应执行。该按钮可以正常工作,但是按键组合不起作用。我该如何解决?

2 个答案:

答案 0 :(得分:2)

应该是类似

root.bind('<Control-v>', printFunction)

但是请记住,这将再次引发另一个错误,因为您必须将event作为参数传递给函数。

def printFunction(event=None):
    print("Hello World")

为什么event=None?这是因为您的按钮也使用了与command相同的功能,但声明时没有传递任何参数。因此,要使其无效,这是一种解决方法。

或者,您也可以传递类似*args而不是event的信息:

def printFunction(*args):
    print("Hello World")

希望您能更好地理解

欢呼

答案 1 :(得分:1)

您可以使用

from tkinter import *

root = Tk()
root.geometry("600x600")

def printFunction(event):
    print("Hello World")

button = Button(root, text="click here", command=lambda:printFunction(None))
root.bind('<Control-v>', printFunction)
button.pack()
root.mainloop()
  • 相关功能需要参数event
  • 事件名称应转换为<Control-v>
  • 别忘了在调用函数名称之前添加lambda 该按钮,以便通过任何方式都可以正常通话。