2016-05-23 4 views
0

Python 2.7, Tkiner. Поэтому в основном я буквально список, который содержит 10 элементов, но я хотел бы, чтобы пронумеровать каждый из этих элементов, так что я создал этот код:Tkinter for loop counter

counter = 0 

for i in range(10): 
    digits = Label(new_window, text = counter + 1) 
    shoes_label = Label(new_window, text = list_of_shoes[counter]) 
    counter = counter + 1 
    digits.pack() 
    shoes_label.pack() 
new_window.mainloop() 

Это создает что-то вроде этого:

1 
shoe_1 
    2 
shoe_2 
    3 
shoe_3 
    4 
shoe_4 
    5 
shoe_5 
...etc.. 

И я ищу что-то вроде этого:

1) Shoe_1 
2) Shoe_2 
3) Shoe_3 
4) Shoe_4 
5) Shoe_5 
...etc... 

Iv'e пытался в то время как петли и создание 2 отдельно для контуров, но ни похоже на работу, это, вероятно, только я делаю это вкл orrectly. Было бы здорово, если бы кто-то помог мне с этим. Благодарю.

ответ

2

У вас должен быть pack() каждый виджет в другой край окна. Это выполнимо с pack(), но вы можете переключиться на grid() для удобства:

for i in range(10): 
    digits = Label(new_window, text=str(i+1)) 
    shoes_label = Label(new_window, text=list_of_shoes[i]) 
    digits.grid(row=i, column=0) 
    shoes_label.grid(row=i, column=1) 

new_window.mainloop() 

Обратите внимание, что вы можете просто использовать i вместо counter.

+0

Так что я попытался это, но окно просто перестает отвечать на запросы, а затем разбить по какой-то причине, ни малейшего представления, почему? –

+0

Нет, я понятия не имею, почему. Этот код в порядке, и вы не предоставили [MCVE] (http://stackoverflow.com/help/mcve), чтобы ошибки, которые вы видите, могли быть воспроизведены и исследованы. – TigerhawkT3

+0

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

0

Ваши данные таблицы, поэтому grid лучший способ расположить метки:

for counter, shoe in enumerate(list_of_shoes): 
    Label(new_window, text=counter+1).grid(row=counter, column=0) 
    Label(new_window, text=shoe).grid(row=counter, column=1) 
+0

Я бы не рекомендовал привязать управление геометрией к созданию виджета, потому что тогда у вас больше нет ссылки на исходный виджет для последующей реконфигурации. – TigerhawkT3