首页 > 解决方案 > 如何在 tkinter 中为函数添加键盘快捷键

问题描述

我在 Tkinter 中做了一些研究,发现了 root.bind('<Control-Key-whatever key', function)。

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

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

这是我的代码:

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 时,该功能应该执行。该按钮工作正常,但组合键不起作用。我该如何解决?

标签: pythontkinter

解决方案


它应该是这样的

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

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

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

为什么event=None?这是因为您的按钮也使用与 a 相同的函数,command但在声明时没有传递任何参数。因此,要取消它,这是一种解决方法。

或者,您也可以传递类似的东西,*args而不是event

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

希望你能更好地理解。

干杯


推荐阅读