如何更改Listbox项目的文本?

9

我有一个装满项目的 Listbox,需要改变一个项目的文本。使用item configure我只能找到如何更改颜色。

如何在 Tkinter 的 Listbox 中更改项目文本?

2个回答

6

要更改文本,您需要删除并在适当的索引位置重新添加一个项。

下面是一个人为制造的示例,它不断更新列表框中的第二个项目:

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

5

首先,您需要使用Listbox对象的delete方法删除旧项目(指定其索引):

myList.delete(index, old_item)

然后在你旧项目的位置上,插入你的更新项目:

myList.insert(index, updated_item)

如果这是滚动列表框中的最后一项,则在删除时滚动将向上跳跃,然后在插入时不会向下滚动。 - Danon

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