Окно Верхнего уровня - это окно, которое имеет независимое существование под управлением оконного менеджера. Оно украшено декорациями оконного менеджера и может быть перемещено и изменено по размеру независимо от него. Ваше приложение может использовать любое количество окон верхнего уровня.
Для любого виджета 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)
Возвращает текущее состояние окна, одно из:
'normal': Отображается нормально.
'iconic': Иконизировано, отображено с помощью метода.iconify().
'withdrawn': Скрыто; см. метод.withdraw()ниже.
Чтобы изменить состояние окна, передайте в качестве аргумента методу одну из приведенных выше строк. Например, чтобы иконизировать экземпляр
ToplevelT, используйте "T.state('iconic')".
.title(text=None)
Устанавливает заголовок окна. Если аргумент опущен, возвращается текущий заголовок.
.transient(parent=None)
Сделать это окно переходным для некоторого родительского (
parent) окна; родительское окно по умолчанию является родителем этого окна.
Этот метод полезен для недолговечных всплывающих диалоговых окон. Переходное окно всегда отображается перед своим родителем. Если родительское окно иконизировано, то переходное тоже иконизируется.
.withdraw()
Скрывает окно. Восстановите его с помощью
.deiconify()или.iconify().