
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.
Содержание: