Как изменить текст элемента Listbox?

у меня есть Listbox полный элементов, и мне нужно изменить текст элемента. Используя пункт configure, я могу только узнать, как изменить цвета.

Как я могу изменить текст на Tkinter Listbox?

2 ответов


чтобы изменить текст, вам придется удалить и повторно добавить элемент по соответствующему индексу.

вот надуманный пример, который постоянно обновляет второй элемент в списке:

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()

вы должны сначала удалить старый элемент (указав его индекс), используя delete метод