2017-12-05 2 views
2

나는 python3 및 tkinter 모듈로 작성된 간단한 응용 프로그램을 가지고 있습니다. 내 맞춤 위젯을 작성하고 맞춤 이벤트를 보내야합니다.tkinter에서 이벤트를 내보내는 방법?

왜이 아래의 샘플 코드가 작동하지 않습니까?

#!/usr/bin/env python3 

from tkinter import * 

class MyWidget(Listbox): 
    def __init__(self, master, *args, **kwargs): 
     super().__init__(master, *args, **kwargs) 

     # =================== 
     # error: _tkinter.TclError: only one event specification allowed 
     self.bind('<<ListboxSelect>>', lambda e: self.event_generate('MyEvent')) 
     # =================== 


class App(Tk): 
    def __init__(self): 
     super().__init__() 
     w = MyWidget(self) 
     w.bind('MyEvent', lambda e: print('It\'s working')) 
     w.pack() 

     w.insert(END, 'ddddddd') 


if __name__ == '__main__': 
    app = App() 
    app.mainloop() 

답변

5

가상 이벤트는 <<>>에 의해 포위 될 필요가있다. 'MyEvent''<<MyEvent>>'으로 바꾸면 맞춤 이벤트가 작동합니다.

관련 문제