如何向tkinter中的函数添加键盘快捷键

2024-10-01 02:22:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Tkinter中做了一些研究,找到了root.bind(“<;Control Key Anwhere Key”,函数)

我想把它添加到我正在制作的应用程序中

我做了一个按钮,我想让它在我点击某个组合键时执行一个功能

这是我的密码:

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时,函数应该执行。按钮工作正常,但组合键不工作。我该如何解决这个问题


Tags: key函数lt功能应用程序密码bindtkinter
2条回答

你可以用

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 按钮,以便通过任何方式呼叫而不发出任何问题

应该是这样的

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

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

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

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

或者,您也可以传递类似于*args而不是event的内容:

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

希望你能更好地理解

干杯

相关问题 更多 >