Python Tkinter 列表框:添加项目
在程序启动时,我像这样往我的列表框里添加一些项目:
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'在前)。如果在你的电脑上不是这样,请编辑你的回答,提供关于你电脑的详细信息;-)。