Использование виджета Tkinter PanedWindow в Python

В этом уроке вы узнаете, как использовать виджет Tkinter PanedWindow в Python для разделения пространства фрейма или окна.

Введение в виджет Tkinter PanedWindow

Виджет PaneWindow разделяет пространство фрейма или окна. PaneWindow похож на Frame, который действует как контейнер для хранения дочерних виджетов

Обычно PanedWindow содержит вертикальный или горизонтальный стек дочерних виджетов:

Виджет PaneWindow разделяет пространство фрейма

PanedWindow использует полосу для разделения дочерних виджетов. Эта полоса называется sash.

Она может иметь handle, представляющую собой небольшой квадрат, который можно перетаскивать с помощью мыши:

Пример sash и handle

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

Для создания виджета PanedWindow используется следующий синтаксис:

ttk.PanedWindow(container, **options)

Важной опцией виджета PanedWindow является опция orient.

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

Пример виджета Tkinter PanedWindow

В следующем примере показано, как использовать виджет PanedWindow для разделения двух виджетов Listbox:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title('PanedWindow Demo')
root.geometry('300x200')

# change style to classic(Windows only) 
# to show the sash and handle
style = ttk.Style()
style.theme_use('classic')

# paned window
pw = ttk.PanedWindow(orient=tk.HORIZONTAL)

# Left listbox
left_list = tk.Listbox(root)
left_list.pack(side=tk.LEFT)
pw.add(left_list)

# Right listbox
right_list = tk.Listbox(root)
right_list.pack(side=tk.LEFT)
pw.add(right_list)

# place the panedwindow on the root window
pw.pack(fill=tk.BOTH, expand=True)

root.mainloop()

Выход:

Использование виджета PanedWindow

Если вы запустите программу на Windows, вы, скорее всего, не увидите sash и handle. Чтобы сделать их видимыми, вы можете установить тему по умолчанию на классическую.

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *