список python tkinter: добавление элементов - PullRequest
1 голос
/ 24 августа 2010

При запуске программы я добавляю некоторые элементы в свой список следующим образом:

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 Ответ

3 голосов
/ 24 августа 2010

Код, который вы показываете, не является проблемой - это должен быть какой-то другой код, который вы не показывает. Пожалуйста, постарайтесь воспроизвести вашу проблему как можно меньше, и отредактируйте свой ответ, включив этот минимальный код. Вот небольшой скрипт, показывающий, что код, который вы показываете, на самом деле в порядке:

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»). Если это не ведет себя таким образом на вашей коробке, пожалуйста, отредактируйте ваш ответ, чтобы предоставить мельчайшие подробности об этой коробке;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...