В этом разделе вы определяете кортеж как b
, затем перезаписываете b
в каждой итерации:
b = (1, 2, 3, 4, 5)
for i in b:
b = Button(root, text=i, command=click)
b.pack()
Но главная проблема в том, что в b
всегда есть только 1 кнопка, Вы хотите, чтобы каждая кнопка была сохранена в list
, например:
from tkinter import *
root = Tk()
root = root
root.title("1")
root.geometry('600x650')
def click(idx):
# Here x is used to determine the button's location in list b.
b[idx].destroy()
buttons = (1, 2, 3, 4, 5)
b = [] # Make b a list.
for x, i in enumerate(buttons):
b.append(Button(root, text=i,
# Here lambda stores x for each iteration, and assigns it to click.
command= lambda idx = x: click(idx)))
b[-1].pack() # Pack the last button appended to b.
print("success")
root.mainloop()
По сути, то же самое, используя лямбду, но я уже набрал ее, поэтому я публикую ее.