Пакувальники

Пакувальники 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.