2017-12-05 172 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>>'に置き換えて、カスタムイベントが機能するはずです。

関連する問題