I have a ListboxSelect event binding to my listbox, lb. I am using selection_set to select an item in the listbox, but the binded function doesn't run. How can I make the function run when I select an item in the listbox using selection_set as well as when it is clicked?
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()
Thanks to Lafexlos pointing me to this resource: http://wiki.tcl.tk/13939
What I understood was that you have to generate a virtual event which I then discovered can be done in tkinter using event_generate.
self.lb.event_generate("<<ListboxSelect>>")
The above line can be used to generate an event for the listbox.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With