Tkinter - 在列表框选择时运行事件函数

3
我有一个与listbox绑定的ListboxSelect事件。我正在使用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()

虽然这并非直接使用 Python 编写的,但它可能与 Python 相关。http://wiki.tcl.tk/13939 - Lafexlos
@Lafexlos 谢谢你,我已经解决了,我把解决方案留作答案。 - simpleguy
1个回答

2
感谢Lafexlos指引我了解这个资源:http://wiki.tcl.tk/13939 我的理解是你必须生成一个虚拟事件,然后我发现可以使用tkinter的event_generate方法实现。
self.lb.event_generate("<<ListboxSelect>>")

上述代码可以用于生成一个列表框的事件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接