Сетки

setki Экскурсия по tkinter, часть 2

До сих пор мы размещали виджеты на экране, вызывая их метод pack — интерфейс к менеджеру компоновки в библиотеке tkinter. Мы также использовали абсолютные координаты в холстах, которые тоже можно считать своеобразным механизмом компоновки, хотя и не таким высокоуровневым, как методы менеджера компоновки. В данном разделе мы познакомимся с методом grid, наиболее часто используемой альтернативой методу pack. Мы предварительно уже рассматривали эту альтернативу в главе 8, когда обсуждали формы ввода и упорядочивали миниатюры изображений. А сейчас познакомимся с механизмом компоновки по сетке во всей полноте.

Как уже говорилось, действие менеджеров компоновки в библиотеке tkinter заключается в размещении дочерних виджетов внутри контейнера — родительского виджета (обычно родительскими являются элементы Frame или окна верхнего уровня). Когда виджету предлагается присоединить себя вызовом метода pack или grid, в действительности мы предлагаем его родительскому элементу расположить данный виджет среди собратьев. При использовании метода pack определяются некоторые ограничения, и менеджеру компоновки предлагается расположить виджеты соответствующим образом. При использовании метода grid виджеты располагаются в родительском элементе-контейнере по рядам и колонкам, как если бы он был таблицей.

Расположение по сетке является в библиотеке tkinter совершенно отдельной системой управления компоновкой. На момент написания этой книги методы pack и grid взаимно исключают друг друга; при расположении виджетов в одном и том же родительском элементе — в одном контейнере можно использовать либо метод pack, либо метод grid, но не тот и другой одновременно. Это разумно, если усвоить, что менеджеры компоновки выполняют свою работу в родительских элементах, и виджет может размещаться только одним менеджером компоновки.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий