Tkinter Label - отображение элементов списка группами по два в строке - PullRequest
0 голосов
/ 06 марта 2019

Я создаю пример программы для своего класса, это интерфейс магазина, где вы можете выбрать один из трех предметов и увеличить количество товара на складе или выбрать предмет и количество для продажи. Пополнение запасов и хранение элементов корзины в списке работают нормально, но у меня возникают проблемы с правильным отображением элементов корзины на этикетке.

Когда товар добавляется в корзину, его название и количество сохраняются в списке под названием «корзина». поэтому, если выбрано несколько элементов, это будет выглядеть так:

cart["item 1 name", 2, "item 2 name",1]

Когда пользователь нажимает кнопку «Добавить в корзину», я хочу отобразить эту информацию в метке.

Моя проблема в том, что все элементы списка отображаются в одной строке на ярлыке, тогда как я хотел бы, чтобы в каждой строке было только требуемое название элемента и количество, а затем отображать следующий элемент и количество в новой строке. Я попробовал несколько методов, и ничего не получилось. В настоящее время код возвращается просто:

def add_to_cart(self):

   self.sale_items.config(text=(cart)) 

1 Ответ

0 голосов
/ 06 марта 2019

Если я вас правильно понял, это вопрос итерации, а не tkinter. Вы можете нарезать свой список и zip в парах.

cart = ["item 1 name", 2, "item 2 name",1]

for n, q in zip(cart[0::2], cart[1::2]):
    print (f"name: {n}, quality: {q}")

One-вкладыш:

text = [f"{n}, {q}\n" for n, q in zip(cart[0::2], cart[1::2])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...