【问题标题】:Python 3 tkinter keyboard shortcuts call a functionPython 3 tkinter 键盘快捷键调用函数
【发布时间】:2017-06-02 08:35:02
【问题描述】:

我有一个函数,我试图通过按键盘上的两个键来调用它。示例: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()

【问题讨论】:

  • 请告诉我们您是如何进行装订的。

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


【解决方案1】:

这段代码正在做你想要达到的目标:

from tkinter import *

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

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

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

注意:

&lt;a&gt;对应A

&lt;A&gt;对应Shift+A

&lt;Control-n&gt;对应Ctrl+N

&lt;Control-N&gt;对应Ctrl+Shift+N

【讨论】:

  • @aitsuri 很高兴它对您有所帮助 :) 如果它解决了您的问题,您可以“接受”答案以表明问题已“解决”