Last Updated : 12 Jul, 2025
Before moving on to the topic lets see what is
Python Tkinter. So, we all know that Python has different options for creating GUI(s) and
tkinteris one of them. It is the standard
GUIlibrary for Python. And it makes the creation of GUI applications very quick still simple when python is merged with it. It also gives a very effective object-oriented interface to the
TkGUI toolkit.
Note:For more information, refer to
Python GUI – tkinter Widgets in tkinterMoreover,
Tkinterenables number of controls like labels, text boxes, list boxes, buttons, scrollbars etc, which are used in a GUI applications. These controls are known as
widgets.
Geometry management methods of tkinterThese methods are used to organize widgets across parents widget area. Moreover, these methods can be accessed by all the tkinter widgets. There are three
geometry management methodsnamely
pack(), grid(), and place(). All these methods have different roles.
Now, lets discuss about the topic Autohiding Scrollbars using Python-tkinter.In this topic, we will see how auto-hiding scrollbars are created using tkinter in Python. So, firstly lets see the meaning of auto hiding scrollbars below:
Auto-hiding ScrollbarsWhen a scrollbar hides itself if its not required i.e, it is not visible when its not needed then that type of scrollbar is known as
Auto-hiding Scrollbar. In Python
Autohiding scrollbarscan be used with
Listboxand
Textwidgets. It can be implemented using python tkinter with the help of some geometry management methods. Below examples illustrate the use of
Autohiding Scrollbars using Python-tkinter:
Example 1: Python
# Python program to illustrate the usage of
# autohiding scrollbars using tkinter
# Importing tkinter
from tkinter import *
# Creating class AutoScrollbar
class AutoScrollbar(Scrollbar):
# Defining set method with all
# its parameter
def set(self, low, high):
if float(low) <= 0.0 and float(high) >= 1.0:
# Using grid_remove
self.tk.call("grid", "remove", self)
else:
self.grid()
Scrollbar.set(self, low, high)
# Defining pack method
def pack(self, **kw):
# If pack is used it throws an error
raise (TclError,"pack cannot be used with \
this widget")
# Defining place method
def place(self, **kw):
# If place is used it throws an error
raise (TclError, "place cannot be used with \
this widget")
# creating tkinter window
root = Tk()
# Defining vertical scrollbar
verscrollbar = AutoScrollbar(root)
# Calling grid method with all its
# parameter w.r.t vertical scrollbar
verscrollbar.grid(row=0, column=1,
sticky=N+S)
# Defining horizontal scrollbar
horiscrollbar = AutoScrollbar(root,
orient=HORIZONTAL)
# Calling grid method with all its
# parameter w.r.t horizontal scrollbar
horiscrollbar.grid(row=1, column=0,
sticky=E+W)
# Creating scrolled canvas
canvas = Canvas(root,
yscrollcommand=verscrollbar.set,
xscrollcommand=horiscrollbar.set)
canvas.grid(row=0, column=0, sticky=N+S+E+W)
verscrollbar.config(command=canvas.yview)
horiscrollbar.config(command=canvas.xview)
# Making the canvas expandable
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
# creating canvas contents
frame = Frame(canvas)
frame.rowconfigure(1, weight=1)
frame.columnconfigure(1, weight=1)
# Defining number of rows and columns
rows = 20
for i in range(1,rows):
for j in range(1,9):
button = Button(frame, padx=8, pady=8,
text="[%d,%d]" % (i,j))
button.grid(row=i, column=j, sticky='news')
# Creating canvas window
canvas.create_window(0, 0, anchor=NW, window=frame)
# Calling update_idletasks method
frame.update_idletasks()
# Configuring canvas
canvas.config(scrollregion=canvas.bbox("all"))
# Calling mainloop method
root.mainloop()
Output:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4