Пакувальники
Пакувальники TkInter
Пакувальник (менеджер геометрії, менеджер розташування) це спеціальний механізм, який розміщує (упаковує) віджети на вікні. У Tkinter є три пакувальника: pack, place, grid.
Зверніть увагу, що в одному віджеті можна використовувати тільки один тип упаковки, при змішуванні різних типів упаковки програма, швидше за все, не буде працювати.
pack()
Пакувальник pack () є найінтелектуальнішим (і найнепередбачуванішим). Як правило цей пакувальник використовують для розміщення віджетів один за одним (зліва направо або зверху вниз). При використанні цього пакувальника за допомогою властивості side потрібно вказати: до якої сторони батьківського віджета він має примикати. Для створення складної структури з використанням цього пакувальника зазвичай використовують Frame, вкладені одна в одну.
Для детального ознайомлення натиснути Далі
Аргументи pack:
side ("left" / "right" / "top" / "bottom") — до якої сторони має примикати віджет;
fill (None / "x" / "y" / "both") — чи розширювати простір, що надають віджету;
expand (True / False) — чи розширювати сам віджет, щоб він зайняв весь наданий йому простір;
in_ — явна вказівка на те, в якій батьківський віджет потрібно вкласти даний віджет.
Додаткові методи віджетів для роботи з пакувальником pack:
pack_configure — синонім для pack;
pack_slaves (синонім slaves) — повертає список всіх дочірніх запакованих віджетів;
pack_info — повертає інформацію про конфігурацію пакування;
pack_propagate (синонім propagate) (True / False) — включає / відключає поширення інформації про геометрію дочірніх віджетів. Як усталено віджет змінює свій розмір відповідно до розміру своїх нащадків. Цей метод може відключити таку поведінку — pack_propagate(False). Це може бути корисно, якщо необхідно, щоб віджет мав фіксований розмір і не змінював його за примхою нащадків;
pack_forget (синонім forget) — видаляє віджет і всю інформацію про його розташування з пакувальника. Пізніше цей віджет може бути знову розміщений.
grid()
Цей пакувальник є таблицею з осередками, в які поміщаються віджети
Для детального ознайомлення натиснути Далі
Аргументи grid()
row - номер рядка, в який поміщаємо віджет.
rowspan - скільки рядків займає віджет
column - номер стовпця, в який поміщаємо віджет.
columnspan - скільки стовпців займає віджет.
padx / pady — розмір зовнішньої межі (бордюру) по горизонталі / вертикалі;
ipadx / ipady — розмір внутрішньої межі (бордюру) по горизонталі і вертикалі. Різниця між pad і ipad у тому, що при вказівці pad розширюється вільний простір, а при ipad розширюється віджет;
sticky ("n", "s", "e", "w" або їхня комбінація) — вказує, до якої межі «приклеювати» віджет. Дозволяє розширювати віджет у вказаному напрямку. Межі названо відповідно до сторін світу:
"n" (північ) — верхня межа;
"s" (південь) — нижня;
"w" (захід) — ліва;
"e" (схід) — права.
in_ — явна вказівка на те, в якій батьківський віджет потрібно розташувати даний віджет.
Додаткові методи віджетів для роботи з пакувальником grid:
grid_configure — синонім для grid;
grid_slaves (синонім slaves) — повертає список всіх дочірніх запакованих віджетів;
grid_info — повертає інформацію про конфігурацію пакування;
grid_propagate (синонім propagate) — (True / False) — включає / відключає поширення інформації про геометрію дочірніх віджетів. Як усталено віджет змінює свій розмір відповідно до розміру своїх нащадків. Цей метод може відключити таку поведінку — pack_propagate(False). Це може бути корисно, якщо необхідно, щоб віджет мав фіксований розмір і не змінював його за примхою нащадків;
grid_forget (синонім forget) — видаляє віджет і всю інформацію про його розташування з пакувальника. Пізніше цей віджет може бути знову розміщений.
grid_remove — видаляє віджет з-під керування пакувальником, але зберігає інформацію про пакування. Цей метод зручно використовувати для тимчасового видалення віджета.
grid_bbox (синонім bbox) — повертає координати (у пікселях) зазначених стовпців і рядків.
grid_location (синонім location) — приймає два аргументи-координати: x і y (у пікселях). Повертає номер рядка і стовпця, в які потрапляє точка із зазначеними координатами, або -1, якщо точка поза віджетом.
grid_size (синонім size) — повертає розмір таблиці в рядках і стовпцях.
grid_columnconfigure (синонім columnconfigure) / grid_rowconfigure (синонім rowconfigure) — функції для конфігурування пакувальника. Методи приймають номер рядка / стовпчика і аргументи конфігурації. Список можливих аргументів такий:
minsize — мінімальна ширина / висота рядка / стовпчика;
weight — «вага» рядка / стовпчика при збільшенні розміру віджета. 0 означає, що рядок / стовпчик не буде розширено. Рядок / стовпчик з "вагою" k буде розширено у k разів швидше, ніж з вагою 1;
uniform — об'єднання рядків / стовпчиків у групи. Рядки / стовпчики, що мають однаковий параметр uniform, буде розширено строго у відповідності зі своїм вагою;
pad — розмір межі (бордюру) — вказує на те, скільки простору буде додано до найбільшого віджету в рядку / стовпчику.
Приклади використання:
place()
place є простим пакувальником, що дозволяє розміщувати віджет в фіксованому місці з фіксованим розміром. Також він дозволяє вказувати координати розміщення в відносних одиницях для реалізації "гумового" розміщення. При використанні цього пакувальника, необхідно вказувати координати кожного віджета.
Для детального ознайомлення натиснути Далі
Аргументи place
anchor (зі значеннями "n", "s", "e", "w", "ne", "nw", "se", "sw" або "center") — вказівка на те, який кут або яку сторону віджета буде вказано в аргументах x, y, relx, rely. Як усталено "nw" — лівий верхній кут;
bordermode (зі значеннями "inside", "outside", "ignore") — визначає, в якій мірі буде враховано межі при розміщенні віджета;
in_ — явна вказівка на те, в який батьківський віджет буде вкладено даний;
x і y — абсолютні координати (у пікселях) розташування віджету;
width і height — абсолютні ширина і висота віджету;
relx і rely — відносні координати (від 0.0 до 1.0) розташування віджета;
relwidth і relheight — відносні ширина і висота віджету.
Додаткові методи віджетів для роботи з пакувальником place:
place_slaves, place_forget, place_info — див. опис аналогічних методів пакувальника pack.
Для більш складних розміщень використовують допоміжний віджет Frame.