Разница между менеджерами сетки и пакета геометрии

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

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

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


person aneuryzm    schedule 19.10.2010    source источник


Ответы (1)


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

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

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

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

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

person Bryan Oakley    schedule 19.10.2010