Метод pack
Для позиционирования элементов в окне применяются различные способы, и самый простой способ представляет вызов у элемента метода pack(). Этот метод принимает следующие параметры:
- expand: если равно True, то виджет заполняет все пространство контейнера.
- fill: определяет, будет ли виджет растягиваться, чтобы заполнить свободное пространство вокруг. Этот параметр может принимать следующие значения: NONE (по умолчанию, элемент не растягивается), X (элемент растягивается только по горизонтали), Y (элемент растягивается только по вертикали) и BOTH (элемент растягивается по вертикали и горизонтали).
- side: выравнивает виджет по одной из сторон контейнера. Может принимать значения: TOP (по умолчанию, выравнивается по верхней стороне контейнера), BOTTOM (выравнивание по нижней стороне), LEFT (выравнивание по левой стороне), RIGHT (выравнивание по правой стороне).
Например, растянем кнопку на всю форм, используя параметры expand и fill:
| 1 2 3 4 5 6 7 8 9 10 11 | |

Используем параметр side:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |

Комбинируя параметры side и fill, можно растянуть элемент по вертикали:
| 1 2 3 | |
Метод place
Метод place() позволяет более точно настроить параметры позиционирования. Он принимает следующие параметры:
- height и width: устанавливают соответственно высоту и ширину элемента в пикселях
- relheight и relwidth: также задают соответственно высоту и ширину элемента, но в качестве значения используется число float в промежутке между 0.0 и 1.0, которое указывает на долю от высоты и ширины родительского контейнера
- x и y: устанавливают смещение элемента по горизонтали и вертикали в пикселях соответственно относительно верхнего левого угла контейнера
- relx и rely: также задают смещение элемента по горизонтали и вертикали, но в качестве значения используется число float в промежутке между 0.0 и 1.0, которое указывает на долю от высоты и ширины родительского контейнера
- bordermode: задает формат границы элемента. Может принимать значение
INSIDE(по умолчанию) иOUTSIDE - anchor: устанавливает опции растяжения элемента. Может принимать значения n, e, s, w, ne, nw, se, sw, c, которые являются сокращениями от Noth(север — вверх), South (юг — низ), East (восток — правая сторона), West (запад — левая сторона) и Center (по центру). Например, значение nw указывает на верхний левый угол
Например, разместим кнопку с шириной 130 пикселей и высотой 30 пикселей в центре окна:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |

Следует заметить, что при использовании метода place() не надо использовать метод pack(), чтобы сделать элемент видимым.
Или разместим три кнопки:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |

Метод grid
Метод grid применяет другой подход к позиционированию элементов, нежели метод place, позволяя поместить элемент в определенную ячейку условной сетки или грида.
Метод grid применяет следующие параметры:
- column: номер столбца, отсчет начинается с нуля
- row: номер строки, отсчет начинается с нуля
- columnspan: сколько столбцов должен занимать элемент
- rowspan: сколько строк должен занимать элемент
- ipadx и ipady: отступы по горизонтали и вертикали соответственно от границ элемента до его текста
- padx и pady: отступы по горизонтали и вертикали соответственно от границ ячейки грида до границ элемента
- sticky: выравнивание элемента в ячейке, если ячейка больше элемента. Может принимать значения n, e, s, w, ne, nw, se, sw, которые указывают соответствующее направление выравнивания
Например, определим грид из 9 кнопок:
| 1 2 3 4 5 6 7 8 9 10 11 12 | |
