Разница между "сеткой" и "упаковкой" менеджеров геометрии - PullRequest
7 голосов
/ 19 октября 2010

В чем основное различие между менеджерами геометрии Tkinter grid и pack?

Что вы используете для своих проектов?

Если grid лучше выровнять объект, то какое основное назначение pack?

1 Ответ

20 голосов
/ 19 октября 2010

сетка используется для размещения виджетов в сетке. Другой ответ говорит, что это «накладывает на график», что немного неправильно. Он ничего не перекрывает, он просто размещает виджеты вдоль границ строк и столбцов. Отлично подходит для создания таблиц и других структурированных макетов.

pack раскладывает вещи по бокам коробки. Это превосходно при создании макетов, где все находится в одной строке или в одном столбце (подумайте о рядах кнопок на панели инструментов или в диалоговом окне). Это также полезно для очень простых макетов, таких как навигатор слева и основная рабочая область справа. Его можно использовать для создания очень сложных макетов, но это будет сложно, пока вы полностью не поймете алгоритм упаковки.

Вы не можете использовать и сетку, и упаковку с виджетами, имеющими общего родителя. Ваше приложение может работать, но оно с гораздо большей вероятностью попадет в бесконечный цикл, так как каждый менеджер пытается расположить виджеты, затем другие замечают, что виджеты меняют размер и пытаются настроить и т. Д. И т. Д.

Третье место - место . Поместить отлично подходит для абсолютного позиционирования (т.е. для размещения виджета в заданном x / y) или для относительного (например: для размещения виджета по правому краю другого виджета).

Хотя вы не можете смешивать сетку и упаковку в одном контейнере (контейнер обычно представляет собой фрейм), вы можете использовать сетку и упаковку в одном приложении. Это очень, очень часто, так как у каждого есть свои сильные и слабые стороны. Я использую оба на регулярной основе.

...