как правильно выровнять кнопки tkinter с пробелами

#python #tkinter #tkinter-layout

Вопрос:

Я хочу, чтобы это выглядело так:

введите описание изображения здесь

поэтому я сделал это:

 seats = ['F11', 'F12', 'F13', 'F14', 'F21', 'F22', 'F23', 'F24', 'B31', 'B32', 'B33', 'B34',
     'B41', 'B42', 'B43', 'B44', 'B51', 'B52', 'B53', 'B54', 'E61', 'E62', 'E63', 'E64', 
     'E71', 'E72', 'E73', 'E74', 'E81', 'E82', 'E83', 'E84', 'E91', 'E92', 'E93', 'E94']

for i in seats:
if i[2] == "3" or i[2] == "4":
    Label(root, text="").grid(row=int(i[1]),column=3, columnspan=12)
    Button(root, text=i).grid(row=int(i[1]), column=int(i[2]) 10)
else:
    Button(root, text=i).grid(row=int(i[1]), column=int(i[2]))
 

что дает мне это:

введите описание изображения здесь

Мне не хватает горизонтальных пробелов, есть ли способ включить его?

Комментарии:

1. Является ли ваша попытка получить одеяла пустой этикеткой?

2. используйте фрейм и установите для него padx и pady некоторое значение, затем упакуйте соответствующие виджеты в этот фрейм

Ответ №1:

Я бы создал шесть рамок, по одной для каждой группы кнопок. Затем вы можете использовать grid эти шесть кадров для размещения с таким количеством отступов между каждой группой, как вам нравится. Затем в каждом кадре вы можете разместить кнопки так, как хотите.

Другой вариант-просто добавить пустую строку между каждой группой. Вы можете оставить строку пустой , но задать ей минимальный размер rowconfigure , или вы можете поместить в нее рамку той же высоты, что и количество пустого пространства, которое вы хотите.

Комментарии:

1. Я устал добавлять кнопки внутри самих рамок, но вместо этого он помещает кнопки в мэйнфрейм даже после указания места их размещения.

2. родительский кадр не учитывается, и вместо этого сетка