Я пытаюсь сократить количество кода, необходимого для создания сетки кнопок 4x4 в простом приложении калькулятора с использованием tkinter и python 3.6. До сих пор я создал сетку, используя отдельный список и цикл for для каждой строки.кнопок, как показано ниже
firstRow = ['1','2','3',]
secondRow = ['4','5','6','*']
thirdRow = ['7','8','9','/']
forthRow = ['.','0','-','+']
for b in range(len(firstRow)):
firstBtns = tk.Button(self, text=firstRow[b],
command=lambda i=firstRow[b]: entry.insert('end',i),
width=5)
firstBtns.grid(row=0, column=b)
for b in range(len(secondRow)):
secondBtns = tk.Button(self, text=secondRow[b], width=5)
secondBtns.grid(row=1, column=b)
for b in range(len(thirdRow)):
thirdBtns = tk.Button(self, text=thirdRow[b], width=5)
thirdBtns.grid(row=2, column=b)
for b in range(len(forthRow)):
forthBtns = tk.Button(self, text=forthRow[b], width=5)
forthBtns.grid(row=3, column=b)
Мне интересно, есть ли способ сделать это с помощью 4 списков в списке и с помощью одного цикла for или вложенного цикла for?вот что я пробовал, но не могу заставить его отображаться правильно.
buttonRows = [['1','2','3','AC'],['4','5','6','/'],
['7','8','9','*',],['.','0','-','+']]
for lst in range(len(buttonRows)):
for b in buttonRows[lst]:
print(len(buttonRows[lst]))
btns = tk.Button(self, text=b, width=5)
btns.grid(row=lst, column=lst)
вот что он мне дает введите описание изображения здесь