I have a Listbox
full of items, and I need to change an item's text. Using item configure I can only find out how to change colors.
How can I change the item text on a Tkinter Listbox
?
To change the text you will have to delete and re-add an item at the proper index.
Here is a contrived example that continuously updates the second item in the listbox:
import Tkinter as tk
import time
class Example(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.lb = tk.Listbox(self)
self.lb.pack(fill="both", expand=True)
self.lb.insert("end", "item 1","the current time", "item 3")
self.after(1000, self._update_listbox)
def _update_listbox(self):
self.lb.delete(1)
self.lb.insert(1, time.asctime())
self.after(1000, self._update_listbox)
if __name__ == "__main__":
root = tk.Tk()
Example(root).pack(fill="both", expand=True)
root.mainloop()
You have first to delete the old item (specifying its index), using the delete
method of your Listbox
object:
myList.delete(index, old_item)
and then insert
your updated_item at position of you old item:
myList.insert(index, updated_item)
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