2010-08-23 31 views
1

程序启动时,我添加一些项目到我的列表框这样的:蟒蛇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),但没有帮助。 任何想法为什么项目不能正确添加?

回答

3

您显示的代码不是问题 - 它必须是其他代码,您是而不是显示。请尝试以尽可能小的指南针重现您的问题,并编辑您的答案以包含最小代码。这里有一个小的脚本,说明你展示的代码实际上是OK:

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中),并完全按照预期,显示了两个项目(“画布”第一)。如果这样做不是表现您的框中,请编辑您的答案,以提供关于该框的最细节;-)。

+1

ARGH !!好吧,这不是tkinter的错,但我的。我在程序后期意外删除了所有项目,并添加了一个空的...对不起:( (好吧,我可爱的小程序有超过1800行,所以我跟踪发生的一切都很艰难:/) – Rawing 2010-08-23 23:49:58

+3

@Rawing,很高兴有帮助(通过显示它不是Tkinter的错,但是你的)。为了保持你的代码在控制之下,把它分成模块和功能,比1800行更小的尺寸! – 2010-08-24 00:17:14