我正在尝试创建一个循环,显示各个标签的产品标题(Tkinter模块)。
使用当前循环我可以让它在列表中打印我的10“static_webpage_1_titles”,但我希望每次都将变量Label_1增加+1增量。
例如,它应该做这样的事情:
Label_1['text'] = static_webpage_1_titles[0]
Label_2['text'] = static_webpage_1_titles[1]
Label_3['text'] = static_webpage_1_titles[2]
这是我目前的代码:
def Generate_Product_Name_and_Price_1():
if Button_on:
Find_static_webpage_1()
for i in range(len(static_webpage_1_titles)):
Label_1['text'] = static_webpage_1_titles[i]
编辑:
product_labels = [Label_1['text'], Label_2['text'], Label_3['text'],
Label_4['text'], Label_5['text'], Label_6['text'],
Label_7['text'], Label_8['text'], Label_9['text'],
Label_10['text']]
我在每个标签小部件上创建了一个列表,并将循环中的最后一行代码更改为:
def Generate_Product_Name_and_Price_1():
if Button_on:
Find_static_webpage_1()
for i in range(len(static_webpage_1_titles)):
product_labels[i] = static_webpage_1_titles[i] +': $'+ static_webpage_1_price[i]
当我运行它时,我没有收到任何IDLE错误,但我的标签小部件没有填充数据。
答案 0 :(得分:0)
您需要列出Label实例列表,而不是Label实例的文本属性。像这样:
product_labels = [Label_1, Label_2, Label_3,
Label_4, Label_5, Label_6,
Label_7, Label_8, Label_9,
Label_10]
然后你可以像这样访问属性:
for i in range(len(static_webpage_1_titles)):
product_labels[i]['text'] = static_webpage_1_titles[i] +': $'+ static_webpage_1_price[i]
你也可以用zip()来使它更整洁:
for label, title, price in zip(product_labels, static_webpage_1_titles, static_webpage_1_price):
label['text'] = title +': $'+ price