2017-05-02 4 views
0

나는이 비슷한 코드의 조각을 가지고 :파이썬 Tkinter 키 바인딩과 버튼이 서로를 블로킹합니까?

def create_main(self): 

    self.bind("<Left>", lambda e:self.function()) 
    self.button1 = Button(self, ...) 
    self.button1.grid(row=0, column =0) 

    #furtherbuttons... 

def function(self): 
    print('test') 

이 코드에있어 문제는 내가 왼쪽으로 누르면 함수가 호출되지 없구요 것입니다. 다른 버튼으로 시도해 보았고 마우스, 마우스 버튼은 항상 잘 작동하지만 키보드는 아무 것도하지 않습니다.

바인딩 동작을 차단하는 버튼에 대해 읽었지만이 문제에 대한 해결책은 없습니다.

+1

조금 더 추가하고 MCVE https://stackoverflow.com/help/mcve를 게시하십시오. –

+0

버튼은 바인드 작업을 차단하지 않습니다. http://stackoverflow.com/q/16923167/7432 –

+0

"self"가 프레임이라고 가정하고 있습니까? 루트에 바인딩해야 할 수도 있습니다. – Novel

답변

0

다음은 Win10에서 3.6.1과 작동하는 MCVE입니다.

import tkinter as tk 
root = tk.Tk() 

def handle(event=None): 
    print(event) 
    return 'break' 

root.bind('<Left>', handle) 
tk.Button(root, text='button', command=handle) 
root.mainloop() 

< - 및 왼쪽 클릭 인쇄 이벤트 arg. 간섭이나 차단이 없습니다.