Tkinter对象放入列表并变成不想要的元组

时间:2019-07-02 01:51:25

标签: python python-2.7 tkinter

我正在用Tkinter构建一个简单的用户界面。我得到了从未见过的东西...将我的Label对象放在列表中之后,我希望能够创建一个for循环,然后对标签进行网格化。但是,在运行for循环时,我发现我的列表是包含对象的元组列表。然后,当我从元组中取出对象时,它不再是tk Label对象。

#Here are my objects being initiated before going into the list
outputdir = tk.Label(frame2, text="Output folder name"),
format = tk.Label(frame2, text="Output Format"),
compress = tk.Label(frame2, text="Compress?"),
limit_span = tk.Label(frame2, text="Limit time span?")

#The list
label_list = [outputdir, format, compress, limit_span]

#The for loop I expected to be able to use
for i in range(len(label_list)-1):
    label_obj = label_list[i]
    label_obj.grid(row=i,column=0)

我希望label_obj是一个tk.Label对象。我实际上得到的是一个元组...如果访问该元组并打印,我发现该对象不仅仅是一堆垃圾数字。

我希望使用的代码的

CMD输出为:

Traceback (most recent call last):
  File "f9borg_ui.py", line 110, in <module>
    label_obj.grid(row=i,column=0)
AttributeError: 'tuple' object has no attribute 'grid'

如果我打印(label_list),则输出。注意,除了最后一个对象,每个对象都在列表中的元组中。

[(<Tkinter.Label instance at 0x05A4C328>,), (<Tkinter.Label instance at 0x05A4C3A0>,), (<Tkinter.Label instance at 0x05A4C418>,), (<Tkinter.Label instance at 0x05A4C490>,), (<Tkinter.Label instance at 0x05A4C508>,), (<Tkinter.Label instance at 0x05A4C580>,), (<Tkinter.Label instance at 0x05A4C5F8>,), (<Tkinter.Label instance at 0x05A4C670>,), (<Tkinter.Label instance at 0x05A4C6E8>,), <Tkinter.Label instance at 0x05A4C760>]

如果我访问元组,则输出。因此,print(tuple_list [0] [0])

.86381312.86381352

这是怎么回事,我该如何解决?感谢您的帮助。

0 个答案:

没有答案