別のスレッドで実行されている tkinter ウィンドウの仮想イベントを生成する必要があります。tkinter がメインスレッドで実行され、イベントが別のスレッドで生成される場合、非 GUI スレッドからの呼び出しevent_generate
は安全であると想定されており、うまく機能します。
特定の理由から、イベントを生成するステートメントをメイン スレッドで実行する必要があります (具体的には、これらのステートメントをモジュールのトップレベルに配置する必要があります)。
しかし、root = Tk(); root.mainloop()
新しいスレッドとroot.event_generate("<<my-event>>")
メインスレッドで行うと、スタックオーバーフローが発生します。root = Tk(); root.mainloop()
(メインスレッドとroot.event_generate("<<my-event>>")
新しいスレッドで)スレッドを交換すると、すべてが再び機能します。
イベントを生成する前に、root が完全に構成されている (そしてアイドル状態である) ことにも気を配っています。
このセットアップを機能させる方法はありますか?
(私は Python 3.2.3 を使用しています)