Иногда требуется объеденить несколько виджетов в группу
например для того, чтобы они имели одинаковую ширину или высоту.
Для этих целей есть специальные виджеты - фреймы.
В Tk есть два вида фреймов - frame и labelframe.
Если первый фрейм не отображает ничего на экране, то второй
выводит рамку и подпись.
После создания фрейма в него укладываются виджеты.
Есть два способа указать команде pack, что надо уложить виджет во фрейм.
Можно в имени виджета упомянуть имя фрейма, например: ".frame1.label1",
тогда менеджер окон по имени виджета определит, что он принадлежит
фрейму ".frame1", при этом фрейм может быть вложен в другой фрейм
и так далее, бывает что имя виджета получается очень длинным.
Второй способ - в команде pack в помощью опции -in указать
фрейм, в который вам хочется поместить виджет. Этот путь имеет
два преимущества - имя виджета становится короче и если
вам захочется положить виджет в другой фрейм не придётся
во всей программе менять его имя.
Фрейм используется так же, как и все виджеты.
Как уже было сказано выше, в labelframe выводится рамка и подпись
для всего фрейма, поэтому у него есть несколько дополнительных
опции настройки шрифта, толщины рамки, рельефа и т.д.
Стандартные опции для frame и labelframe:
-background |
| Эта опция аналогична стандартной,
за тем исключением, что вместо цвета может быть задана пустая строка. |
-class |
| Указывает класс для окна.
Этот класс будет использоваться при запросе опций для окна из базы данных
и может быть позже использован для других целей, например,
привязки клавиш. Опция class не может быть изменена командой configure. |
-colormap |
| Задаёт набор цветов, которые будут
использоваться во фрейме. Если значение - new, то будет создан
новый набор цветов, если значение - имя другого окна,
то будет цвета будут взяты оттуда. Если опция не задана,
то будут использоваться цвета родительского окна.
Опция colormap не может быть изменена командой configure. |
-container |
| Значение - булевское да (1, yes, true)
или нет (0, no, false). Если значение истина, то фрейм может
использоваться как контейнер для других окон (например,
может быть встроено другое окно с помощью опции -use), в
этом случае фрейм не может содержать в себе виджетов.
Опция container не может быть изменена командой configure. |
-height |
| Задаёт высоту фрейма.
Если значение меньше или равно нулю, то фрейм
не будет иметь вообще никакого размера по вертикали вообще. |
-labelanchor (только labelframe) |
| Задаёт расположение для метки.
Метка выводится, если задано значение опции -text.
Возможные значения (перечисление по часовой стрелке):
nw, n ,ne, en, e, es, se, s, sw, ws, w, wn. По умолчанию - nw. |
-labelwidget (только labelframe) |
| Задаёт виджет,
который будет помещен вместо метки. |
-visual |
| Задаёт визуальную информацию
для нового окна.
Опция visual не может быть изменена командой configure. |
-width |
| Задаёт ширину фрейма.
Если значение меньше или равно нулю, то фрейм
не будет иметь вообще никакого размера по горизонтали вообще. |