Python 3 tkinter键盘快捷键调用函数

标签 python python-3.x tkinter keyboard-shortcuts

我有一个函数,我试图通过按键盘上的两个键来调用它。示例:Ctrl+N

self._first_event = None
self._second_event = None

def function(self, event):
    if self._first_event == None:
        self._first_event = event
    else:
        self._second_event = event
        if self._first_event == 'Ctrl' and self._second_event == 'n':
            return someotherfunction()

我尝试了这段代码,但它没有调用 someotherfunction()

最佳答案

此代码正在执行您想要实现的目标:

from tkinter import *

def someotherfunction(e=None):
    print('It works !')

root = Tk()
root.bind('<Control-n>', someotherfunction)
root.mainloop()

我认为这是比您尝试的更正确的方法。顺便说一句,如果你看 documentation 事件对象的它包含多个内容,因此您无法将其与这样的字符串进行比较。您应该使用event.keysym例如。

注意:

<a>对应A

<A>对应Shift+A

<Control-n>对应Ctrl+N

<Control-N>对应Ctrl+Shift+N

关于Python 3 tkinter键盘快捷键调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44324377/

相关文章:

python - 为什么空列表在 Python 的 while 循环中评估为 False

python - instagram.bind.InstagramClientError : Unable to parse response, 无效的 JSON

python - 如何在 Python 3 中 pickle os.environ?

python - 是否有任何支持 Python 3 语法的 IDE?

python - 如何将输入从条目添加到Python中的标签?

python - 使用solve_ivp和odeint的解决方案的曲线拟合差异

python - 使用 PyQt5 在文本框中打印输出语句

Python - 在 Tkinter 标签中插入新行

python 2.7 异步函数与 tkinter

python - 在 Python 中添加的方法