Фрейм - это, по сути, контейнер для других виджетов.
Корневое окно вашего приложения - это, по сути, фрейм.
Каждый фрейм имеет свой собственный макет сетки, поэтому сетка виджетов внутри каждого фрейма работает независимо.
Виджеты Frame - ценный инструмент для создания модульного приложения. Вы можете сгруппировать набор связанных виджетов в общий виджет, поместив их во фрейм. Еще лучше объявить новый класс, который наследуется от Frame, добавив к нему свой собственный интерфейс. Это хороший способ скрыть от внешнего мира детали взаимодействия внутри группы связанных виджетов.
Чтобы создать новый виджет фрейма в корневом окне или фрейме с именем parent:
w = Frame(parent, option, ...)
Конструктор возвращает новый виджет Frame. Опции:
Таблица 19. Опции виджета Frame
bg или background |
Цвет фона фрейма. См. раздел Раздел 5.3, "Цвета". |
bd или borderwidth |
Ширина обрамления фрейма. По умолчанию 0 (без границы). Допустимые значения см. в Раздел 5.1, "Размеры". |
cursor |
Курсор, используемый при наведении мыши на виджет фрейма; см. раздел Раздел 5.8, "Курсоры". |
height |
Вертикальный размер нового фрейма. Это значение будет игнорироваться, если вы также не вызовете .grid_propagate(0) для фрейма; смотрите Раздел 4.2, "Другие методы управления сеткой". |
highlightbackground |
Цвет фокусного выделения, когда фрейм не имеет фокуса. См. Раздел 53, "Фокус: маршрутизация ввода с клавиатуры". |
highlightcolor |
Цвет, отображаемый в фокусном выделении, когда фрейм имеет фокус. |
highlightthickness |
Толщина фокусного выделения focus. |
padx |
Обычно фрейм плотно прилегает к своему содержимому. Чтобы добавить N пикселей горизонтального пространства внутри фрейма, задайте padx=N. |
pady |
Используется для добавления вертикального пространства внутри фрейма. См. padx выше. |
relief |
По умолчанию для рамки используется рельеф tk.FLAT, что означает, что рамка будет сливаться с окружающей средой. Чтобы установить границу вокруг рамки, задайте для ее borderwidth положительное значение и установите для нее один из стандартных типов рельефа; см. Раздел 5.6, "Стили рельефа". |
takefocus |
Обычно фреймы не посещаются при фокусном обходе (обзор этой темы см. в Раздел 53, "Фокус: маршрутизация ввода с клавиатуры"). Однако вы можете установить takefocus=1, если хотите, чтобы фрейм получал ввод с клавиатуры. Для обработки такого ввода вам потребуется создать привязки для событий клавиатуры; подробнее о событиях и привязках см. в Раздел 54, "События". |
width |
Горизонтальный размер нового фрейма. См. раздел Раздел 5.1, "Размеры". Это значение игнорируется, если вы также не вызвали .grid_propagate(0) для фрейма; см. раздел Раздел 4.2, "Другие методы управления сеткой". |