The Scrollbar widget in Tkinter allows for scrolling content in other widgets, such as Listbox, Text, Canvas, or even Entry widgets if horizontal scrolling is required. It can be configured to be either vertical or horizontal.
w = Scrollbar(parent, options)
• parent: The parent widget in which the Scrollbar is placed (like a window or frame).
• options: Various options to configure the Scrollbar widget, listed below.
| SN | Option | Description |
|---|---|---|
| 1 | activebackground | Background color of the widget when it has focus. |
| 2 | bg | Background color of the widget. |
| 3 | bd | Border width of the widget. |
| 4 | command | Procedure called each time the scrollbar is moved. |
| 5 | cursor | Mouse pointer type when hovering over the scrollbar (e.g., arrow, dot). |
| 6 | elementborderwidth | Border width around the arrow heads and slider (default is -1). |
| 7 | highlightbackground | Focus highlight color when the widget does not have focus. |
| 8 | highlightcolor | Focus highlight color when the widget has focus. |
| 9 | highlightthickness | Thickness of the focus highlight. |
| 10 | jump | Controls the behavior of the scroll jump. If set to 1, the scrollbar jumps to the requested position. |
| 11 | orient | Orientation of the scrollbar (HORIZONTAL or VERTICAL). |
| 12 | repeatdelay | Duration before the slider starts moving repeatedly when the button is pressed (default is 300 ms). |
| 13 | repeatinterval | Interval between repeated movements (default is 100 ms). |
| 14 | takefocus | Whether the scrollbar should be part of the focus cycle (default is 1). |
| 15 | troughcolor | Color of the trough (background area where the slider moves). |
| 16 | width | Width of the scrollbar. |
| SN | Method | Description |
|---|---|---|
| 1 | get() | Returns the current position of the scrollbar as two numbers (a and b). |
| 2 | set(first, last) | Connects the scrollbar to another widget, setting its scrolling range. |
Here’s an example of a vertical scrollbar used with a Text widget:
from tkinter import *
def main():
# Create the main window
root = Tk()
root.title("Scrollbar Example")
# Create a frame to contain the Text widget and Scrollbar
frame = Frame(root)
frame.pack(fill=BOTH, expand=1)
# Create a Text widget
text = Text(frame, wrap=NONE)
text.pack(side=LEFT, fill=BOTH, expand=1)
# Create a vertical Scrollbar
v_scrollbar = Scrollbar(frame, orient=VERTICAL, command=text.yview)
v_scrollbar.pack(side=RIGHT, fill=Y)
# Configure the Text widget to use the scrollbar
text.config(yscrollcommand=v_scrollbar.set)
# Add some content to the Text widget
for i in range(100):
text.insert(END, f"Line {i + 1}\n")
# Run the Tkinter event loop
root.mainloop()
if __name__ == "__main__":
main()
• orient: Specifies the orientation of the scrollbar (VERTICAL in this case).
• command: The command option is set to the yview method of the Text widget, so the scrollbar moves with the text.
• yscrollcommand: Configures the Text widget to update the scrollbar’s position based on its content.
This example demonstrates how to connect a scrollbar to a text widget, allowing users to scroll through content that exceeds the visible area. You can similarly use a horizontal scrollbar by setting orient=HORIZONTAL.