如何在tkinter中发出事件?

BPS*_*BPS 3 python tk-toolkit tkinter python-3.x

我有用python3和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()
Run Code Online (Sandbox Code Playgroud)

j_4*_*321 5

虚拟事件需要被<<和包围>>.只需替换'MyEvent''<<MyEvent>>',您的自定义事件应该有效.