Tkinter - 在列表框选择时运行事件功能

时间:2016-03-17 10:47:49

标签: python user-interface python-3.x tkinter tk

我有一个ListboxSelect事件绑定到我的列表框,lb。我使用selection_set选择列表框中的项目,但绑定的函数不运行。当我使用selection_set选择一个项目以及单击它时,如何使该函数运行?

import tkinter as tk

class SampleApp(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.lb = tk.Listbox(self)

        for x in range(20):
            self.lb.insert("end", x)

        self.lb.bind("<<ListboxSelect>>", self.OnSelect)

        self.lb.pack(side="top", fill="both", expand=True)


    def OnSelect(self, event):
        print(event.widget.get(event.widget.curselection()[0]))
        self.lb.selection_set(10)


if __name__ == "__main__":
    app = SampleApp()
    app.mainloop()

1 个答案:

答案 0 :(得分:2)

感谢Lafexlos指点我这个资源:http://wiki.tcl.tk/13939

我的理解是你必须生成一个虚拟事件,然后我发现可以使用event_generate在tkinter中完成。

self.lb.event_generate("<<ListboxSelect>>")

上述行可用于为列表框生成事件。