Цикл Python для переменных меток - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь создать цикл, который будет отображать каждое название продукта для отдельных ярлыков (модуль 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 голосов
/ 22 мая 2018

Вам необходимо составить список экземпляров 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...