Open In App

Python Tkinter | Create LabelFrame and add widgets to it

Last Updated : 11 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Tkinter is a Python module which is used to create GUI (Graphical User Interface) applications. It is a widely used module which comes along with the Python. It consists of various types of widgets which can be used to make GUI more user-friendly and attractive as well as functionality can be increased. LabelFrame can be created as follows:

-> import tkinter
-> create root
-> create LabelFrame as child of root
label_frame = ttk.LabelFrame(parent, value = options, ...)

Code #1: Creating LabelFrame and adding a message to it. 

Python3
# Import only those methods
# which are mentioned below, this way of
# importing methods is efficient
from tkinter import Tk, mainloop
from tkinter.ttk import Label, LabelFrame

# Creating tkinter window with fixed geometry
root = Tk()
root.geometry('250x150')

# This will create a LabelFrame
label_frame = LabelFrame(root, text='This is Label Frame')
label_frame.pack(expand='yes', fill='both')

label1 = Label(label_frame, text='1. This is a Label.')
label1.place(x=0, y=5)

label2 = Label(label_frame, text='2. This is another Label.')
label2.place(x=0, y=35)

label3 = Label(label_frame,
               text='3. We can add multiple\n    widgets in it.')

label3.place(x=0, y=65)

# This creates an infinite loop which generally
# waits for any interrupt (like keyboard or
# mouse) to terminate
mainloop()

Output:   Code #2: Adding Button and CheckButton widgets inside LabelFrame. 

Python3
# Import only those methods
# which are mentioned below, this way of
# importing methods is efficient
from tkinter import Tk, mainloop
from tkinter.ttk import Checkbutton, Button, LabelFrame

# Creating tkinter window with fixed geometry
root = Tk()
root.geometry('250x150')

# This will create a LabelFrame
label_frame = LabelFrame(root, text='This is Label Frame')
label_frame.pack(expand='yes', fill='both')

# Buttons
btn1 = Button(label_frame, text='Button 1')
btn1.place(x=30, y=10)
btn2 = Button(label_frame, text='Button 2')
btn2.place(x=130, y=10)

# Checkbuttons
chkbtn1 = Checkbutton(label_frame, text='Checkbutton 1')
chkbtn1.place(x=30, y=50)
chkbtn2 = Checkbutton(label_frame, text='Checkbutton 2')
chkbtn2.place(x=30, y=80)

# This creates infinite loop which generally
# waits for any interrupt (like keyboard or
# mouse) to terminate
mainloop()

Output: Note: One can also add another LabelFrame inside another LabelFrame, as well as one can do styling of any LabelFrame like we do the styling of other widgets.


Practice Tags :

Similar Reads