Обновление ярлыков в Tkinter с помощью цикла for - PullRequest
0 голосов
/ 15 мая 2018

Поэтому я пытаюсь распечатать элементы в списке динамически на 10 tkinter Label s, используя цикл for. В настоящее время у меня есть следующий код:

labe11 = StringVar()
list2_placer = 0
list1_placer = 1
mover = 227
for items in range(10):
    item_values = str(list1[list1_placer] + " " +list2[list2_placer])
    Label(canvas1, width="100", height="2",textvariable=labe11).place(x=200,y=mover)
    labe11.set(item_values)
    list1_placer = list1_placer +1
    list2_placer = list2_placer +1
    mover = mover +50

Где list1 и list2 - списки, содержащие строки или целые числа из отдельной функции и содержащие более 10 элементов, и требуются только первые 10.

В настоящее время это просто печатает последний элемент в списке на 10 отдельных ярлыках. Заранее спасибо!

1 Ответ

0 голосов
/ 15 мая 2018

Просто используйте отдельный StringVar для каждого Label.В настоящее время вы просто передаете один и тот же ярлык всем ярлыкам, поэтому при его обновлении все они обновляются вместе.

Вот пример.Вы не дали полностью работоспособную программу, поэтому мне пришлось заполнить пробелы.

from tkinter import Tk, Label, StringVar

root = Tk()

list1 = [1,2,3,4,5]
list2 = [6,7,8,9,10]

for v1, v2 in zip(list1, list2):

    item_values = '{} {}'.format(v1, v2)
    sv = StringVar()
    lbl = Label(root, width="100", height="2",textvariable=sv).pack()

    sv.set(item_values)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...