Python Tkinter PanedWindow


A PanedWindow is a container widget that may contain any number of panes, arranged horizontally or vertically.

Each pane contains one widget and each pair of panes is separated by a moveable (via mouse movements) sash. Moving a sash causes the widgets on either side of the sash to be resized.


Here is the simple syntax to create this widget:

w = PanedWindow( master, option, ... )


  • master: This represents the parent window.

  • options: Here is the list of most commonly used options for this widget. These options can be used as key-value pairs separated by commas.

bg The color of the slider and arrowheads when the mouse is not over them.
bd The width of the 3-d borders around the entire perimeter of the trough, and also the width of the 3-d effects on the arrowheads and slider. Default is no border around the trough, and a 2-pixel border around the arrowheads and slider.
borderwidth Default is 2.
cursor The cursor that appears when the mouse is over the window.
handlepad Default is 8.
handlesize Default is 8.
height No default value.
orient Default is HORIZONTAL.
relief Default is FLAT.
sashcursor No default value.
sashrelief Default is RAISED.
sashwidth Default is 2.
showhandle No default value
width No default value.


PanedWindow objects have these methods:

Methods & Description
add(child, options)
Adds a child window to the paned window.
get(startindex [,endindex])
This method returns a specific character or a range of text.
Modifies one or more widget options. If no options are given, the method returns a dictionary containing all current option values.


Try the following example yourself. Here's how to create a 3-pane widget:

from Tkinter import *

m1 = PanedWindow()
m1.pack(fill=BOTH, expand=1)

left = Label(m1, text="left pane")

m2 = PanedWindow(m1, orient=VERTICAL)

top = Label(m2, text="top pane")

bottom = Label(m2, text="bottom pane")


When the above code is executed, it produces the following result:

TK PanedWindow