Python | PanedWindow Widget in Tkinter
Tkinter supports a variety of widgets to make GUI more and more attractive and functional. The PanedWindow widget is a geometry manager widget, which can contain one or more child widgets panes. The child widgets can be resized by the user, by moving separator lines sashes using the mouse.
Syntax: PanedWindow(master, **options)
Parameters:
master: parent widget or main Tk() object
options: which are passed in config method or directly in the constructor
PanedWindow can be used to implement common 2-panes or 3-panes but multiple panes can be used.
Code #1:PanedWindow with only two panes
# Importing everything from tkinter modulefrom tkinter import * from tkinter import ttk # main tkinter windowroot = Tk() # panedwindow objectpw = PanedWindow(orient ='vertical') # Button widgettop = ttk.Button(pw, text ="Click Me !\nI'm a Button")top.pack(side = TOP) # This will add button widget to the panedwindowpw.add(top) # Checkbutton Widgetbot = Checkbutton(pw, text ="Choose Me !")bot.pack(side = TOP) # This will add Checkbutton to panedwindowpw.add(bot) # expand is used so that widgets can expand# fill is used to let widgets adjust itself# according to the size of main windowpw.pack(fill = BOTH, expand = True) # This method is used to show sashpw.configure(sashrelief = RAISED) # Infinite loop can be destroyed by# keyboard or mouse interruptmainloop() |
Output:
Code #2: PanedWindow with multiple panes
# Importing everything from tkinter modulefrom tkinter import * from tkinter import ttk # main tkinter windowroot = Tk() # panedwindow objectpw = PanedWindow(orient ='vertical') # Button widgettop = ttk.Button(pw, text ="Click Me !\nI'm a Button")top.pack(side = TOP) # This will add button widget to the panedwindowpw.add(top) # Checkbutton Widgetbot = Checkbutton(pw, text ="Choose Me !")bot.pack(side = TOP) # This will add Checkbutton to panedwindowpw.add(bot) # adding Label widgetlabel = Label(pw, text ="I'm a Label")label.pack(side = TOP) pw.add(label) # Tkinter string variablestring = StringVar() # Entry widget with some styling in fontsentry = Entry(pw, textvariable = string, font =('arial', 15, 'bold'))entry.pack() # Focus force is used to focus on particular# widget that means widget is already selected for operationsentry.focus_force() pw.add(entry) # expand is used so that widgets can expand# fill is used to let widgets adjust itself# according to the size of main windowpw.pack(fill = BOTH, expand = True) # This method is used to show sashpw.configure(sashrelief = RAISED) # Infinite loop can be destroyed by# keyboard or mouse interruptmainloop() |
Output:


