PanedWindow
— это виджет, который может содержать в себе один или несколько дочерних виджетов в форме разделённых панелей.
Он предоставляет пользователю возможность динамически изменять размер этих панелей путем перетаскивания разделительных полос между ними.
Создание виджета PanedWindow
в Tkinter происходит с помощью вызова конструктора PanedWindow()
.
import tkinter as tk
root = tk.Tk()
# Создание PanedWindow
pw = tk.PanedWindow(root)
pw.pack(fill=tk.BOTH, expand=1)
root.mainloop()
В этом примере создается виджет PanedWindow
, но он пока что пуст.
Для добавления виджетов в PanedWindow
используется метод add()
:
import tkinter as tk
root = tk.Tk()
pw = tk.PanedWindow(root)
pw.pack(fill=tk.BOTH, expand=1)
# Добавление виджетов в PanedWindow
frame1 = tk.Label(pw, text="Панель 1", bg="blue", fg="white")
frame2 = tk.Label(pw, text="Панель 2", bg="red", fg="white")
pw.add(frame1)
pw.add(frame2)
root.mainloop()
В этом примере в PanedWindow
добавляются два виджета типа Label
, каждый из которых занимает одну панель.
Виджет PanedWindow
имеет множество свойств, которые позволяют настраивать его внешний вид и поведение. Некоторые из них:
Основные методы PanedWindow
:
add(widget, **options)
— добавляет указанный виджет в PanedWindow
.remove(widget)
— удаляет указанный виджет из PanedWindow
.paneconfigure(widget, **options)
— изменяет свойства определенного виджета в PanedWindow
.panecget(widget, option)
— возвращает текущее значение указанного свойства виджета.sash_place(index, x, y)
— размещает указанную handle в позиции x, y.sash_coord(index)
— возвращает координаты указанной handle.from tkinter import *
root = Tk()
# Создание виджета PanedWindow
p = PanedWindow(root, orient=VERTICAL, bg='blue', handlepad=10, handlesize=20, sashwidth=10)
p.pack(fill=BOTH, expand=1)
# Создание первого фрейма и добавление его в PanedWindow
top = Label(p, text='Верхняя панель', bg='red', height=5)
p.add(top)
# Создание второго фрейма и добавление его в PanedWindow
bottom = Label(p, text='Нижняя панель', bg='green', height=5)
p.add(bottom)
root.mainloop()
В этом примере создается PanedWindow
с двумя панелями — «Верхняя панель» и «Нижняя панель». Между этими панелями есть handle, которую можно перетаскивать, чтобы изменить размеры панелей. Размер handle установлен на 20 пикселей, ширина sash
(элемент, который включает в себя handle) — 10 пикселей. Обратите внимание, что в данном примере handle будет невидим, так как мы не установили showhandle=True
.
Комментарии в коде помогают понять, какие действия выполняются на каждом шагу.
PanedWindow
— это полезный виджет в Tkinter, который позволяет создавать гибкие пользовательские интерфейсы с регулируемыми разделами. Понимание работы с этим виджетом может значительно упростить разработку GUI.
Содержание: