Использование виджета Tkinter PanedWindow в Python
В этом уроке вы узнаете, как использовать виджет Tkinter PanedWindow в Python для разделения пространства фрейма или окна.
Введение в виджет Tkinter PanedWindow
Виджет PaneWindow разделяет пространство фрейма или окна. PaneWindow похож на Frame, который действует как контейнер для хранения дочерних виджетов
Обычно PanedWindow содержит вертикальный или горизонтальный стек дочерних виджетов:
PanedWindow использует полосу для разделения дочерних виджетов. Эта полоса называется 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()
Выход:
Если вы запустите программу на Windows, вы, скорее всего, не увидите sash и handle. Чтобы сделать их видимыми, вы можете установить тему по умолчанию на классическую.