The Frame widget in Tkinter is used to create a container that can hold and organize other widgets. It helps in structuring the layout of an application by grouping related widgets together.
w = Frame(parent, options)
Here, parent is the parent widget (such as a window or another frame), and options are used to configure the appearance and behavior of the Frame widget.
| SN | Option | Description |
|---|---|---|
| 1 | bd | Border width of the Frame in pixels. |
| 2 | bg | Background color of the Frame. |
| 3 | cursor | Changes the mouse pointer type when over the Frame (e.g., arrow, dot). |
| 4 | height | Height of the Frame in pixels. |
| 5 | highlightbackground | Color of the highlight border when the Frame is not in focus. |
| 6 | highlightcolor | Color of the highlight border when the Frame is in focus. |
| 7 | highlightthickness | Thickness of the highlight border when the Frame is in focus. |
| 8 | relief | Type of border around the Frame. Possible values: FLAT, RAISED, SUNKEN, GROOVE, RIDGE. Default is FLAT. |
| 9 | width | Width of the Frame in pixels. |
Here is an example of using the Frame widget to organize a simple Tkinter application:
from tkinter import *
# Create the main window
root = Tk()
root.title("Tkinter Frame Example")
# Create a Frame for buttons
button_frame = Frame(root, bg="lightblue", bd=2, relief="sunken")
button_frame.pack(padx=10, pady=10, fill=BOTH, expand=True)
# Create Buttons inside the Frame
Button(button_frame, text="Button 1").pack(side=LEFT, padx=5, pady=5)
Button(button_frame, text="Button 2").pack(side=LEFT, padx=5, pady=5)
Button(button_frame, text="Button 3").pack(side=LEFT, padx=5, pady=5)
# Create another Frame for labels
label_frame = Frame(root, bg="lightgreen", bd=2, relief="groove")
label_frame.pack(padx=10, pady=10, fill=BOTH, expand=True)
# Create Labels inside the Frame
Label(label_frame, text="Label 1").pack(padx=5, pady=5)
Label(label_frame, text="Label 2").pack(padx=5, pady=5)
Label(label_frame, text="Label 3").pack(padx=5, pady=5)
# Run the application
root.mainloop()
• Main Window: The root window is created using Tk().
• Button Frame: A Frame widget named button_frame is created with a light blue background and a sunken border. It is used to contain buttons.
• Buttons: Three buttons are added to the button_frame, arranged horizontally.
• Label Frame: Another Frame widget named label_frame is created with a light green background and a groove border. It contains labels.
• Labels: Three labels are added to the label_frame, arranged vertically.
Using frames helps in organizing widgets into separate sections and makes the layout more manageable and structured.