Python Tkinter 列表框:添加项目

2 投票
1 回答
22300 浏览
提问于 2025-04-16 03:12

在程序启动时,我像这样往我的列表框里添加一些项目:

for widget in WidgetNames:
    listbox.insert(0, widget)

WidgetNames 显然是一些项目的列表,比如“按钮”和“画布”。问题是,列表框并没有显示用上面的代码添加的项目。不过,

for widget in WidgetNames:
    listbox.insert(0, widget)
    print(listbox.get(0))

打印出“按钮”和“画布”,而且

for widget in WidgetNames:
    listbox.insert(0, widget)
print(listbox.size())

打印出2,这显然是它包含的项目数量。添加项目后,列表框里只显示了一条空行。我试过 listbox.see(0) 和 listbox.index(0),但都没有帮助。

有没有人知道为什么项目没有正确添加呢?

1 个回答

4

你展示的代码本身并没有问题,问题可能出在你没有展示的其他代码上。请尽量把问题简化,重新编辑你的回答,加入那段最小的代码。下面有一个小脚本,可以证明你展示的代码其实是没问题的:

from Tkinter import *

master = Tk()
listbox = Listbox(master)
listbox.pack()

WidgetNames = ['Button', 'Canvas']
for widget in WidgetNames:
    listbox.insert(0, widget)

mainloop()

这段代码在我的电脑上(Ubuntu 10.4,Python 2.6)运行得很好,正如预期的那样,显示了两个项目('Canvas'在前)。如果在你的电脑上不是这样,请编辑你的回答,提供关于你电脑的详细信息;-)。

撰写回答