我正在用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
这是怎么回事,我该如何解决?感谢您的帮助。