2017-06-02 82 views
1

我有一个函数,我试图通过按键盘上的两个键来调用。例如:按Ctrl +ñPython 3 tkinter键盘快捷键调用函数

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()

+0

请告诉我们你是如何做出的绑定。 –

回答

1

此代码做你想达到什么目的:

from tkinter import * 

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

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

我认为这是一个更正确的方法来做到这一点,而不是你如何去做。顺便说一句,如果你看看的事件对象它包含很多东西,所以你不能比较它像一个字符串。例如,您应该使用event.keysym

注:

<a>对应于

<A>对应 +

<Control-n>对应Ctrl键 + Ñ

<Control-N>对应按Ctrl ++ñ

+0

非常感谢,它为我工作:) – aitsuri

+0

@aitsuri我很高兴它可以帮助你:)如果它解决了你的问题,你可以“接受”的答案表明这个问题是“解决” – Gabriel

+0

@aitsuri因为我已经看到你从未接受答案,然后我将你链接到[this](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work),它解释了这个功能的用途 – Gabriel