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

时间:2019-03-06 03:20:41

标签: python list tkinter label

我正在为我的课程创建一个示例程序,它是一个商店界面,您可以在其中选择三个项目之一并增加库存量,或者选择要出售的项目和数量。库存补充和将购物车项目存储在列表中都可以,但我无法在标签中正确显示购物车项目。

将某商品添加到购物车后,该商品的名称和数量将存储在称为“购物车”的列表中。因此,如果选择了一些项目,它将看起来像这样:

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

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

我的问题是所有列表项目都出现在标签的同一行上,而我希望每行仅具有所需的项目名称和数量,然后在新行上显示下一个项目和数量。我尝试了几种方法,但没有任何效果。目前,代码又回到了:

def add_to_cart(self):

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

1 个答案:

答案 0 :(得分: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])]