Главная


25. Toplevel: Методы окна верхнего уровня

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

Для любого виджета w вы можете получить доступ к его виджету верхнего уровня с помощью w.winfo_toplevel().

Чтобы создать новое окно верхнего уровня:

w = tk.Toplevel(option, ...)

Опции включают:

Таблица 34. Методы окна Toplevel

bg или background Цвет фона окна. См. Раздел 5.3, "Цвета".
bd или borderwidth Ширина границы в пикселях; по умолчанию 0. Возможные значения см. в Раздел 5.1, "Размеры". См. также опцию relief, ниже.
class_ Вы можете дать окну Toplevel имя "класса". Такие имена сопоставляются с базой данных опций, так что ваше приложение может подобрать пользовательские настройки (например, цвета) по имени класса. Например, вы можете разработать серию всплывающих окон, называемых "screamers", и задать им всем class_='Screamer'. Тогда вы можете поместить в базу данных опций строку следующего вида:

*Screamer*background: red

и тогда, если вы используете метод .option_readfile() для чтения вашей базы данных опций, все виджеты с именем этого класса по умолчанию будут иметь красный фон. Эта опция названа class_, потому что class - зарезервированное слово в Python.
cursor Курсор, который появляется, когда мышь находится в этом окне. См. раздел Раздел 5.8, "Курсоры".
height Высота окна; см. раздел Раздел 5.1, "Размеры".
highlightbackground Цвет подсветки фокуса, когда окно не имеет фокуса. Смотрите Раздел 53, "Фокус: маршрутизация ввода с клавиатуры".
highlightcolor Цвет подсветки фокуса, когда окно имеет фокус.
highlightthickness Толщина подсветки фокуса. По умолчанию 1. Установите highlightthickness=0, чтобы подавить отображение подсветки фокуса.
menu Чтобы снабдить это окно меню верхнего уровня, укажите виджет Menu в качестве значения этой опции. В MacOS это меню будет отображаться в верхней части экрана, когда окно активно. В Windows или Unix оно будет отображаться в верхней части приложения.
padx Используйте эту опцию для создания дополнительного пространства по левую и правую сторону окна. Значение представляет собой число пикселей.
pady Используйте эту опцию для создания дополнительного пространства в верхней и нижней частях окна. Значение - количество пикселей.
relief Обычно окно верхнего уровня не имеет трехмерных границ вокруг себя. Чтобы получить рельефную границу, установите параметр bd больше его значения по умолчанию, равного нулю, а для параметра relief установите одну из констант, рассмотренных в разделе [Раздел 5.6, "Стили рельефа"] (relief.html).
takefocus Обычно окно верхнего уровня не получает фокус. Используйте takefocus=True, если хотите, чтобы оно могло принимать фокус; смотрите Раздел 53, "Фокус: маршрутизация ввода с клавиатуры".
width Желаемая ширина окна; смотрите Раздел 5.1, "Размеры".

Эти методы доступны для окон верхнего уровня:.

.aspect(n_min, d_min, n_max, d_max)

Ограничивает соотношение ширины и длины корневого окна диапазоном:
[ n_min / d_min, n_max / d_max ].

.deiconify()

Если это окно отображается в виде значка, разверните его.

.geometry(newGeometry=None)

Устанавливает геометрию окна. Форму аргумента см. в Раздел 5.10, "Строки геометрии". Если аргумент опущен, возвращается текущая строка геометрии.

.iconify()

Иконизировать (свернуть) окно.

.lift(aboveThis=None)

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

.lower(belowThis=None)

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

.maxsize(width=None, height=None)

Устанавливает максимальный размер окна. Если аргументы опущены, возвращает текущий размер (width, height).

.minsize(width=None, height=None)

Устанавливает минимальный размер окна. Если аргументы опущены, возвращает текущий минимальный размер в виде 2-кортежа.

.overrideredirect(flag=None)

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

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

Этот метод может не работать на некоторых платформах Unix и MacOS.

.resizable(width=None, height=None)

Если значение истинно, разрешает изменение размера по горизонтали. Если height - истина, разрешается вертикальное изменение размера. Если аргументы опущены, возвращает текущий размер в виде 2-кортежа.

.state(newstate=None)

Возвращает текущее состояние окна, одно из:

Чтобы изменить состояние окна, передайте в качестве аргумента методу одну из приведенных выше строк. Например, чтобы иконизировать экземпляр Toplevel T, используйте "T.state('iconic') ".

.title(text=None)

Устанавливает заголовок окна. Если аргумент опущен, возвращается текущий заголовок.

.transient(parent=None)

Сделать это окно переходным для некоторого родительского (parent) окна; родительское окно по умолчанию является родителем этого окна.

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

.withdraw()

Скрывает окно. Восстановите его с помощью .deiconify() или .iconify().


>> Универсальные методы виджетов