python tkinter listbox:添加项目

时间:2010-08-23 23:22:25

标签: python python-3.x tkinter

在程序启动时,我会在列表框中添加一些项目,如下所示:

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

WidgetNames显然是一些项目的列表,例如“按钮”和“画布”。问题是,列表框不显示随上述代码添加的项目。但是,

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

打印“Button”和“Canvas”,以及

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

打印2,显然是它包含的正确数量的项目。添加项目后的所有列表框都显示为空行。我已经尝试过listbox.see(0)和listbox.index(0),但这没有帮助。 任何想法为什么没有正确添加项目?

1 个答案:

答案 0 :(得分:3)

您展示的代码不是问题 - 它必须是您显示的其他代码。请尝试在尽可能小的指南针中重现您的问题并编辑您的答案以包含最少的代码。这是一个小脚本,用于显示您显示的代码实际上是正常的:

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'第一个)。如果您的框中表现如此,请编辑您的答案以提供有关所述框的最细微信息; - )。