python - 如何在 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 时,该功能应该执行。该按钮工作正常,但组合键不起作用。我该如何解决?
解决方案
它应该是这样的
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")
希望你能更好地理解。
干杯
推荐阅读
- node.js - 使用对象作为在 router.get 中查找值的键
- javascript - 如果任何输入或选择的表单为空,如何删除表格行?
- android - 折叠工具栏标题动画速度
- laravel-5 - 雄辩的查询以获得数据库中的最高值和第二高值
- c# - Python 女服务员 API 挂起
- python - 如何在python中向条形图添加百分比
- c# - C# 托管的 Powershell 中的内存泄漏
- assembly - 在 x86-64 中将寄存器移动到自身有什么好处
- javascript - Youtube iFrame Javascript API 并不总是加载网站视频
- c++ - 发送结构时如何使用 MapViewOfFile