Tkinter标签 - 以每行两个为一组显示列表项

问题描述 投票:0回答:1

我正在为我的班级创建一个示例程序,它是一个商店界面,您可以在其中选择三个项目之一并增加库存量,或选择要销售的项目和数量。清单中的库存补货和存储货物项目工作正常,但我无法正确显示标签中的购物车项目。

将商品添加到购物车时,商品名称和数量将存储在名为“购物车”的列表中。因此,如果选择了几个项目,它将如下所示:

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

当用户单击“添加到购物车”按钮时,我想在标签中显示此信息。

我的问题是所有列表项都出现在标签的同一行,而我希望每行只有项目名称和数量,然后在新行上显示下一个项目和数量。我尝试了一些方法,没有任何工作。目前代码简单地回归:

def add_to_cart(self):

   self.sale_items.config(text=(cart)) 
python list tkinter label
1个回答
0
投票

如果我理解正确,这是迭代而不是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}")

一内胆:

text = [f"{n}, {q}\n" for n, q in zip(cart[0::2], cart[1::2])]
© www.soinside.com 2019 - 2024. All rights reserved.