Я читаю из базы данных и создаю кнопки, которые добавляют каждый элемент в корзину пользователя. Функция Add_To_Basket () добавляет элемент в корзину и сообщает пользователю, что в данный момент находится в корзине. Это работает нормально, однако в графическом интерфейсе, вместо замены уже сделанных ярлыков и кнопок, он добавляет новую корзину ниже, есть ли способ, чтобы этого не произошло?
Это часть моего класса и дает контекст для кнопки и метода, который она использует.
for i in range(No_Of_Items):
New_ID = (i + 1)
query = ("SELECT `Name` FROM Items WHERE ID = (%s)" %(New_ID))
cursor.execute(query)
Current_Item = cursor.fetchone()
Text_For_Button = ("Add %s to Basket" %(Current_Item))
Add_This_Item_Button = tk.Button(self, text = Text_For_Button, command = lambda Current_Item = Current_Item: self.Add_To_Basket(Current_Item, Basket))
Add_This_Item_Button.pack()
def Add_To_Basket(self, Current_Item, Basket):
Basket.append(Current_Item)
Basket_Label = tk.Label(self, text= "CURRENT BASKET")
Basket_Label.pack(pady = 10, padx = 10)
for i in range(len(Basket)):
Text_For_Label = Basket[i]
Basket_label = tk.Label(self, text= Text_For_Label)
Basket_label.pack(pady = 10, padx = 10)
Finish_Button = tk.Button(self, text = "Finish Transaction", command = lambda: self.Finish_Transaction(Basket))
Finish_Button.pack()
Я ожидаю, что пользователь будет показан
CURRENT BASKET
Orange
Pear
, ноЯ получаю
CURRENT BASKET
Orange
CURRENT BASKET
Orange
Pear
Какой-нибудь совет, чтобы предотвратить это? Я попытался удалить виджеты и переделать их, однако, поскольку кнопки создаются в цикле, он удаляет только последний экземпляр.