我在Tkinter进行了一些研究,发现了root.bind(' 我想将此添加到正在创建的应用程序中。 我做了一个按钮,当我单击某个组合键时希望它执行功能。 这是我的代码: 因此,当我单击按钮时,该功能应执行,而当我单击Ctrl + v时,该功能应执行。该按钮可以正常工作,但是按键组合不起作用。我该如何解决?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()
答案 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
该按钮,以便通过任何方式都可以正常通话。