[파이썬] tkinter 팬드 윈도우(`PanedWindow`) 위젯

The tkinter library in Python provides a wide range of widgets that can be used to create graphical user interfaces. One such versatile widget is the PanedWindow, which allows you to divide the window into multiple resizable panes.

What is a PanedWindow widget?

A PanedWindow widget is a container widget that can contain multiple panes, arranged horizontally or vertically. Each pane can be resized by dragging the boundary between the panes. This makes it ideal for creating split views or resizable layouts.

Creating a PanedWindow widget

To use the PanedWindow widget in your Python application, you first need to import the tkinter module:

import tkinter as tk

Next, you can create an instance of the PanedWindow widget:

root = tk.Tk()

paned_window = tk.PanedWindow(root, orient=tk.HORIZONTAL)

Here, root is the parent window in which the PanedWindow widget is placed. The orient parameter specifies the orientation of the panes, which can be either tk.HORIZONTAL or tk.VERTICAL.

Adding panes to a PanedWindow

Once the PanedWindow widget is created, you can add panes to it using the add() method:

pane1 = tk.Label(paned_window, text="Pane 1")
pane2 = tk.Label(paned_window, text="Pane 2")

paned_window.add(pane1)
paned_window.add(pane2)

In this example, pane1 and pane2 are both instances of the Label widget that contain some text.

Configuring the PanedWindow

You can customize the behavior and appearance of the PanedWindow widget by configuring its various attributes. For example, you can set the minimum and maximum sizes of the panes using the panesize() method:

paned_window.paneconfigure(pane1, minsize=100)
paned_window.paneconfigure(pane2, minsize=200, maxsize=400)

Here, minsize and maxsize specify the minimum and maximum sizes of the respective panes.

Displaying the PanedWindow

To display the PanedWindow widget, you need to call the pack() or grid() method on the widget:

paned_window.pack(fill=tk.BOTH, expand=True)

root.mainloop()

Here, fill=tk.BOTH ensures that the PanedWindow expands horizontally and vertically to fit its container, and expand=True allows the PanedWindow to fill the available space.

Conclusion

The PanedWindow widget in tkinter is a great tool for creating resizable layouts and split views in your Python GUI applications. It provides functionality to divide the window into multiple resizable panes and allows you to customize their behavior and appearance. With its versatility, the PanedWindow widget can greatly enhance the user experience of your application.