Как изменить переменные по имени с помощью для l oop? - PullRequest
0 голосов
/ 22 апреля 2020
b1 = Button(win,padx = 70,pady = 70,bg = "gray", command = lambda: click(b1))
b2 = Button(win,padx = 70,pady = 70, command = lambda: click(b2))
b3 = Button(win,padx = 70,pady = 70, command = lambda: click(b3))
b4 = Button(win,padx = 70,pady = 70, command = lambda: click(b4))
b5 = Button(win,padx = 70,pady = 70, command = lambda: click(b5))
b6 = Button(win,padx = 70,pady = 70, command = lambda: click(b6))
b7 = Button(win,padx = 70,pady = 70, command = lambda: click(b7))
b8 = Button(win,padx = 70,pady = 70, command = lambda: click(b8))
b9 = Button(win,padx = 70,pady = 70, command = lambda: click(b9))

for n in range(10):
    bn.configure(text=="something") #To modify all buttons with loop

Как я могу динамически изменять кнопки с их именами с for l oop?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Если b1 - b2 определены в вашей глобальной области, и вы хотите динамически обращаться к ним по их имени, вы можете использовать gloabls():

b1 = Button(win,padx = 70,pady = 70,bg = "gray", command = lambda: click(b1))
b2 = Button(win,padx = 70,pady = 70, command = lambda: click(b2))
b3 = Button(win,padx = 70,pady = 70, command = lambda: click(b3))
b4 = Button(win,padx = 70,pady = 70, command = lambda: click(b4))
b5 = Button(win,padx = 70,pady = 70, command = lambda: click(b5))
b6 = Button(win,padx = 70,pady = 70, command = lambda: click(b6))
b7 = Button(win,padx = 70,pady = 70, command = lambda: click(b7))
b8 = Button(win,padx = 70,pady = 70, command = lambda: click(b8))
b9 = Button(win,padx = 70,pady = 70, command = lambda: click(b9))

for n in range(1,10):
    bn = globals()["b{}".format(i)]
    bn.configure(text=="something") #To modify all buttons with loop

0 голосов
/ 22 апреля 2020

Создайте словарь кнопок, то есть

dict_button = {}

for n in range(10):
     dict_button['b'+ str(n)].configure(text=="something")

И сохраните ваши кнопки в словаре как

dict_button['b1'] = Button(win,padx = 70,pady = 70,bg = "gray", command = lambda: click(b1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...