Главная


19. Виджет PanedWindow

Виджет PanedWindow предназначен для того, чтобы дать пользователю приложения возможность контролировать распределение пространства внутри приложения.

Виджет PanedWindow чем-то похож на Frame: он является контейнером для дочерних виджетов. Каждый виджет PanedWindow содержит горизонтальный или вертикальный стек дочерних виджетов. С помощью мыши пользователь может перетаскивать границы между дочерними виджетами вперед и назад.

1) Панель (pane) - это область, занимаемая одним дочерним виджетом.

Чтобы создать новый виджет PanedWindow как дочерний вид корневого окна или фрейма с именем parent:

w = tk.PanedWindow(parent, option, ...)

Этот конструктор возвращает новый виджет PanedWindow. Вот опции:

Таблица 27. Опции виджета PanedWindow

bg или background Цвет фона, отображаемый за дочерними виджетами; см. Раздел 5.3, "Цвета".
bd или borderwidth Ширина границы вокруг внешней стороны виджета; см. раздел Раздел 5.1, "Размеры". По умолчанию это два пикселя.
cursor Курсор, который будет отображаться при наведении мыши на виджет; см. раздел Раздел 5.8, "Курсоры".
handlepad Используйте эту опцию, чтобы указать расстояние между ручкой и концом створки. Для orient=tk.VERTICAL это расстояние между левым концом створки и ручкой; для orient=tk.HORIZONTAL это расстояние между верхней частью створки и ручкой. Значение по умолчанию - восемь пикселей; другие значения см. в Раздел 5.1, "Размеры".
handlesize Используйте этот параметр для указания размера ручки, которая всегда имеет форму квадрата; см. раздел Раздел 5.1, "Размеры". Значение по умолчанию - восемь пикселей.
height Указывает высоту виджета; см. Раздел 5.1, "Размеры". Если вы не укажете этот параметр, высота будет определяться высотой дочерних виджетов.
opaqueresize Эта опция управляет тем, как работает операция изменения размера. При значении по умолчанию opaqueresize=True изменение размера происходит непрерывно при перетаскивании створки. Если для этой опции установлено значение False, створка (и соседние дочерние виджеты) остается на месте до тех пор, пока пользователь не отпустит кнопку мыши, после чего она переходит в новую позицию.
orient Чтобы сложить дочерние виджеты в ряд, используйте orient=tk.HORIZONTAL. Чтобы сложить их сверху вниз, используйте orient=tk.VERTICAL.
relief Выбирает стиль рельефа границы вокруг виджета; см. Раздел 5.6, "Стили рельефа". По умолчанию используется tk.FLAT.
sashpad Используйте эту опцию для выделения дополнительного пространства по обе стороны каждой створки. По умолчанию - ноль; другие значения см. в Раздел 5.1, "Размеры".
sashrelief Эта опция задает стиль рельефа, используемый для отрисовки створок; смотрите Раздел 5.6, "Стили рельефа". По умолчанию используется стиль tk.FLAT.
sashwidth Задает ширину створки; см. Раздел 5.1, "Размеры". По умолчанию ширина составляет два пикселя.
showhandle Используйте showhandle=True для отображения ручек. При значении по умолчанию False пользователь все равно может перемещать створки с помощью мыши. Ручка - это просто визуальная подсказка.
width Ширина виджета; см. Раздел 5.1, "Размеры". Если вы не укажете значение, ширина будет определяться размерами дочерних виджетов.

Чтобы добавить дочерние виджеты в PanedWindow, создайте их как дочерние элементы родительского PanedWindow, но вместо метода .grid() для их регистрации используйте метод .add() для PanedWindow.

Здесь приведены методы виджетов PanedWindow.

.add(child[, option=value] ...)

Используйте этот метод для добавления заданного виджета child в качестве следующего дочернего элемента данного PanedWindow. Сначала создайте виджет child с PanedWindow в качестве родительского виджета, но не вызывайте метод .grid() для его регистрации. Затем вызовите .add(child), и дочерний виджет появится внутри PanedWindow в следующей доступной позиции.

С каждым дочерним элементом связан набор параметров конфигурации, которые управляют его положением и внешним видом. Смотрите Раздел 19.1, "Опции конфигурации дочерних объектов PanedWindow". Вы можете предоставить эти параметры конфигурации в качестве аргументов ключевых слов в методе .add(). Вы также можете установить или изменить их значения в любое время с помощью метода .paneconfig() или получить текущее значение любой из этих опций с помощью метода .panecget(); эти методы описаны ниже.

.forget(child)

Удаляет дочерний виджет.

.identify(x, y)

Для заданного местоположения (x, y) в координатах окна этот метод возвращает значение, описывающее объект в этом местоположении.

.panecget(child, option)

Этот метод извлекает значение опции конфигурации дочернего виджета, где child - дочерний виджет, а option - название опции в виде строки. Список опций конфигурации дочерних виджетов см. в Раздел 19.1, "Опции конфигурации дочерних объектов PanedWindow".

.paneconfig(child, option=value, ...)

Используйте этот метод для настройки опций дочерних виджетов. Опции описаны в Раздел 19.1, "Опции конфигурации дочерних объектов PanedWindow".

.panes()

Этот метод возвращает список дочерних виджетов в порядке слева направо (для orient=tk.HORIZONTAL) или сверху вниз (для orient=tk.VERTICAL).

.remove(child)

Удаляет заданный child; это то же действие, что и метод .forget().

.sash_coord(index)

Этот метод возвращает местоположение створки. Аргумент index выбирает створку: 0 для створки между первыми двумя дочерними элементами, 1 для створки между вторым и третьим дочерним элементом и так далее. Результатом является кортеж (x, y), содержащий координаты левого верхнего угла створки.

.sash_place(index, x, y)

Используйте этот метод для изменения положения створки, выбранной по index (0 для первой створки и так далее). Координаты x и y задают желаемое новое положение левого верхнего угла створки. Tkinter игнорирует координату, перпендикулярную ориентации виджета: используйте значение x для перепозиционирования створки при orient=tk.HORIZONTAL, а координату y для перемещения створки при опции orient=tk.VERTICAL.


>> Опции конфигурации дочерних объектов PanedWindow