Размещение кнопок сеткой Python, grid
С python только знакомлюсь. Не могу понять почему кнопки размещаются списком не сеткой
button_list = list()
for i in self.__position_list.get_position_list():
b = tk.Button(frame_button, text=i.get_name(), width="20", font=('Arial', 12), command=lambda i=i: self.add_button_list_clicked(i.get_position()))
button_list.append(b)
r = 0
for i in button_list:
for j in range(0, 3):
i.grid(row=r, column=j)
r += 1
Полный блок кода
frame_main = tk.Frame(self.main_window) frame_main.place(x=550, y=30)
canvas = tk.Canvas(frame_main, width=572, height=465)
canvas.grid(row=0, column=0)
vsb = tk.Scrollbar(frame_main, orient="vertical", command=canvas.yview)
vsb.grid(row=0, column=1, sticky='ns')
canvas.configure(yscrollcommand=vsb.set)
frame_button = tk.Frame(canvas)
canvas.create_window((1, 0), window=frame_button, anchor='nw')
# #Рабочий вариант но дублирует кнопки
button_list = list()
for i in self.__position_list.get_position_list():
b = tk.Button(frame_button, text=i.get_name(), width="20", font=('Arial', 12), command=lambda i=i: self.add_button_list_clicked(i.get_position()))
button_list.append(b)
r = 0
for i in button_list:
for j in range(0, 3):
i.grid(row=r, column=j)
r += 1
frame_button.update_idletasks()
frame_main.config(width=1, height=1)
canvas.config(scrollregion=canvas.bbox("all"))