Open In App

Python Tkinter – Frame Widget

Last Updated : 01 May, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Python offers multiple options for developing GUI (Graphical User Interface). Out of all the GUI methods, Tkinter is the most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. Python with Tkinter is the fastest and easiest way to create GUI applications. Creating a GUI using Tkinter is an easy task.

Note: For more reference, you can read our article, 

  1. What is Widgets
  2. Python Tkinter Overview
  3. Python Tkinter Tutorial

What is Frame in Tkinter?

A frame is a rectangular region on the screen. A frame can also be used as a foundation class to implement complex widgets. It is used to organize a group of widgets.

Tkinter Frame Widget Syntax

The syntax to use the frame widget is given below.

Syntax: w = frame( master, options)

Parameters:

  • master: This parameter is used to represent the parent window.
  • options: There are many options which are available and they can be used as key-value pairs separated by commas.

Tkinter Frame Options

The following are commonly used Options that can be used with this widget:

  • bg: This option used to represent the normal background color displayed behind the label and indicator.
  • bd: This option used to represent the size of the border around the indicator and the default value is 2 pixels.
  • cursor: By using this option, the mouse cursor will change to that pattern when it is over the frame.
  • height: The vertical dimension of the new frame.
  • highlightcolor: This option used to represent the color of the focus highlight when the frame has the focus.
  • highlightthickness: This option used to represent the color of the focus highlight when the frame does not have focus.
  • highlightbackground: This option used to represent the thickness of the focus highlight..
  • relief: The type of the border of the frame. It’s default value is set to FLAT.
  • width: This option used to represents the width of the frame.

Frame Widget in Tkinter Example

In this example, below code defines functions to create Tkinter widgets with customized options, facilitating widget creation with fewer lines of code. It generates a GUI with a main window containing a frame, labels, and buttons, all with specified options like background color, border size, cursor style, and more, enhancing visual consistency and usability.

Python3
import tkinter as tk

# Function to create widgets with all options
def create_widget(parent, widget_type, **options):
    return widget_type(parent, **options)

# Create the main window
window = create_widget(None, tk.Tk)
window.title("GUI Example")

# Create a Frame widget with all options
frame = create_widget(window, tk.Frame, bg='lightblue', bd=3, cursor='hand2', height=100, 
                      highlightcolor='red', highlightthickness=2, highlightbackground='black', 
                      relief=tk.RAISED, width=200)
frame.pack(padx=20, pady=20)

# Create Label widget with all options
label = create_widget(frame, tk.Label, text='GeeksForGeeks', font='50', bg='lightblue', bd=3, cursor='hand2',
                      highlightcolor='red', highlightthickness=2, highlightbackground='black', 
                      relief=tk.RAISED)
label.pack()

# Create a frame for buttons
button_frame = create_widget(window, tk.Frame, bg='lightblue', bd=3, cursor='hand2', height=50, 
                              highlightcolor='red', highlightthickness=2, highlightbackground='black', 
                              relief=tk.RAISED, width=200)
button_frame.pack(pady=10)

# Function to create buttons with all options
def create_button(parent, text, fg):
    return create_widget(parent, tk.Button, text=text, fg=fg, bg='lightblue', bd=3, cursor='hand2',
                         highlightcolor='red', highlightthickness=2, highlightbackground='black', 
                         relief=tk.RAISED)

# Create buttons
buttons_info = [("Geeks1", "red"), ("Geeks2", "brown"), ("Geeks3", "blue"), 
                ("Geeks4", "green"), ("Geeks5", "green"), ("Geeks6", "green")]

for text, fg in buttons_info:
    button = create_button(button_frame, text=text, fg=fg)
    button.pack(side=tk.LEFT)

# Run the Tkinter event loop
window.mainloop()

Output

Tkinter Frame Widget

Python Tkinter – Frame Widget




Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads