Tkinter用于循环计数器

时间:2016-05-23 10:23:43

标签: python loops user-interface for-loop tkinter

Python 2.7,Tkiner。 所以基本上我确实有一个包含10个项目的列表,但我想为这些项目编号,所以我创建了这个代码:

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...

我尝试了循环,并创建了2个单独的for循环,但似乎都不起作用,它可能只是我做错了。如果有人可以帮助我,这将是很好的。谢谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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)