Python循环标签变量

时间:2018-05-22 18:39:53

标签: python python-3.x tkinter

我正在尝试创建一个循环,显示各个标签的产品标题(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错误,但我的标签小部件没有填充数据。

1 个答案:

答案 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