В серии, скажем, 5 объектов Button, я бы хотел, чтобы при первом нажатии на кнопку ее текстовый параметр обновлялся до номера 1. Затем, когда я нажимаю вторую кнопку, независимо от того, какая из них мне нужна отобразить 2, затем 3, до 5.
Вот моя попытка, она продолжает отображать 1 и не повторяется.
import tkinter as tk
root = tk.Tk()
root.geometry('300x200')
buttons = []
def callback(num):
buttons[num].config(text=next(iter(range(1, 5))))
for i in range(5):
buttons.append(tk.Button(root, text='?', width=6, height=3, command=lambda x=i: callback(x)))
for j in buttons:
j.pack(side='left')
root.mainloop()
дополнительная информация: у меня могут быть трудности с пониманием как работает обратный вызов, используя лямбду вместо прямого вызова, и неправильное использование последнего может быть причиной того, что она не работает должным образом. Это также первый раз, когда я использую next () и iter (), и, возможно, сделал это неправильно.