Подтвердить что ты не робот

Когда использовать пакеты или сетки в tkinter?

Есть ли советы по лучшей практике в отношении того, когда нужно использовать пакет против сетки для своих макетов?

Из того, что я читал через google, concencus кажется, что эта сетка может обрабатывать любой пакетный сценарий, но не наоборот.

Чтобы начать разговор, кажется, что один прецедент, который предпочитает сетку против пакета, - это когда нужно показывать/скрывать виджетов.

4b9b3361

Ответ 1

Ни один из них не превосходит другого. У каждого есть свои сильные и слабые стороны. Узнайте, что это такое, и выбор, который будет использоваться, станет очевидным.

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

Другое дело, что вы сказали в своем вопросе: если вы хотите показывать и скрывать виджеты во время выполнения, сетка, вероятно, лучший выбор из-за метода grid_remove.

Лично мой первый выбор - всегда использовать пакет, потому что я сначала узнал Tk, когда не было команды сетки. Если я не могу сделать это легко в пакете, я буду использовать сетку.

Ответ 2

Я всегда рекомендую использовать сетку для упаковки для полированных приложений. Есть только несколько краевых случаев, когда пакет проще и подходит для счета (все в одной строке или столбце). сетка имеет лучшую "композиционную способность" (например, мегадвижения или элементы сетки элементов сетки). Причинами предпочтения сетки являются дополнительные опции тонкой настройки, которые она предоставляет. Использование веса (которое влияет на рост и сокращение битвы), minsize и maxsize, а также удобные функции, такие как принудительное использование одинаковых строк/столбцов.

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

Кстати, и пакет, и сетка могут показывать/скрывать подэлементы, хотя синтаксис немного отличается между ними. Сетка только немного лучше, потому что "удалить" (а не "забыть" ) запомнит параметры сетки на ведомом виджетах.

Ответ 3

Я лично считаю, что с сеткой намного легче работать, поэтому я буду использовать ее. Конечно, вы, вероятно, читали одно, чего никогда не следует делать, это попытаться использовать оба одновременно в одном контейнере. Спасибо Брайан Оукли за то, что вы сделали это.