Python Tkinter Tutorial
Introduction
Welcome to the Python Tkinter Tutorial by UpdateGadh. This tutorial is designed to introduce the important concepts of Python Tkinter, starting from the fundamentals and moving toward commonly used GUI development techniques. It can be useful for both beginners and professionals who want to understand how desktop applications are created with Python.
Tkinter is Python’s standard library for developing graphical user interfaces (GUI). It provides a collection of built-in widgets that can be combined to create interactive desktop applications. Using Tkinter, developers can create windows, buttons, input fields, menus, selection controls, text areas, and other interface components without requiring a separate GUI framework.
The library is relatively straightforward to work with because its widgets can be created directly through Python code. Once the main window is created, widgets can be added to it and arranged using Tkinter’s geometry management methods.
Table of Contents

Getting Started with Tkinter
Creating a basic Tkinter application involves only a few essential steps. First, the Tkinter module needs to be imported. After that, the main application window is initialized. Required widgets can then be added to the window. Finally, the Tkinter event loop is started so that the application can respond to user interaction.
Steps
- Import the Tkinter module into the Python program.
- Initialize the main application window.
- Create and place widgets such as Labels, Buttons, and Frames.
- Start the main event loop to keep the GUI active and responsive.
Example
# !/usr/bin/python3
from tkinter import *
# Creating the application main window
top = Tk()
# Entering the event main loop
top.mainloop()
Output
Executing the program opens a basic Tkinter application window. At this stage, the window does not contain additional controls, but it provides the foundation on which other widgets can be added.
Tkinter Widgets
Widgets are the individual interface components used to build a Tkinter application. Each widget has a specific purpose, and multiple widgets can be combined to create a complete graphical interface.
| SN | Widget | Description |
|---|---|---|
| 1 | Button | Creates a clickable control that can perform an action. |
| 2 | Canvas | Provides an area for drawing shapes, graphics, and images. |
| 3 | Checkbutton | Provides a checkbox-style selection control. |
| 4 | Entry | Creates a single-line field for entering text. |
| 5 | Frame | Provides a container for grouping and arranging other widgets. |
| 6 | Label | Displays text or images within the interface. |
| 7 | ListBox | Displays a collection of selectable items. |
| 8 | Menubutton | Provides access to a menu containing multiple choices. |
| 9 | Menu | Creates menu structures and dropdown commands. |
| 10 | Message | Displays text that can span multiple lines. |
| 11 | Radiobutton | Allows the user to choose one option from a group. |
| 12 | Scale | Provides a slider for selecting or adjusting a value. |
| 13 | Scrollbar | Adds scrolling functionality to supported widgets. |
| 14 | Text | Provides an area for entering multiple lines of text. |
| 15 | Toplevel | Creates an additional window separate from the main window. |
| 16 | Spinbox | Allows users to choose a value from a defined range. |
| 17 | PanedWindow | Divides an interface into separate adjustable sections. |
| 18 | LabelFrame | Creates a labeled container for organizing related widgets. |
| 19 | MessageBox | Displays popup messages and dialog boxes. |
Tkinter Geometry Management
After creating widgets, they need to be positioned inside the application window. Tkinter provides three primary geometry management methods for controlling widget placement: pack(), grid(), and place().
1. pack() Method
The pack() method places widgets by arranging them in blocks. It is useful when a straightforward layout is required and provides options for controlling the direction and available space used by a widget.
Syntax
widget.pack(options)
Options
- expand: Allows the widget to use additional available space.
- fill: Controls whether the widget expands horizontally using X, vertically using Y, or both.
- side: Determines which side of the parent area receives the widget, such as LEFT, RIGHT, TOP, or BOTTOM.
Example
from tkinter import *
parent = Tk()
redbutton = Button(parent, text="Red", fg="red")
redbutton.pack(side=LEFT)
greenbutton = Button(parent, text="Green", fg="green")
greenbutton.pack(side=RIGHT)
bluebutton = Button(parent, text="Blue", fg="blue")
bluebutton.pack(side=TOP)
blackbutton = Button(parent, text="Black", fg="black")
blackbutton.pack(side=BOTTOM)
parent.mainloop()
In this example, four buttons are created and positioned using different side values. The pack() method determines their placement within the main window.
2. grid() Method
The grid() method organizes widgets using a row-and-column arrangement. It is particularly useful when creating forms where controls need to line up in a structured layout.
Syntax
widget.grid(options)
Options
- row: Identifies the row where the widget should be placed.
- column: Specifies the column position.
- columnspan: Determines how many columns the widget should occupy.
- rowspan: Determines how many rows the widget should cover.
- sticky: Controls alignment using directions such as N, E, W, and S.
Example
from tkinter import *
parent = Tk()
Label(parent, text="Name").grid(row=0, column=0)
Entry(parent).grid(row=0, column=1)
Label(parent, text="Password").grid(row=1, column=0)
Entry(parent, show="*").grid(row=1, column=1)
Button(parent, text="Submit").grid(
row=2,
column=0,
columnspan=2
)
parent.mainloop()
This example uses rows and columns to create a simple form. The Name and Password fields occupy separate rows, while the Submit button spans both columns.
3. place() Method
The place() method provides direct control over widget positioning. Instead of arranging components automatically, it allows their location and dimensions to be specified through coordinates or relative measurements.
Syntax
widget.place(options)
Options
- x, y: Define the widget position using pixel-based coordinates.
- relx, rely: Position the widget using a relative fraction of the parent width and height.
- width, height: Specify the dimensions of the widget.
- anchor: Determines the reference point used for positioning, such as NW, NE, or CENTER.
Complete Advance AI Topics: Click Here
SQL Tutorial: Click Here
YT:- DecodeIT
Example
from tkinter import *
top = Tk()
top.geometry("400x250")
Label(top, text="Name").place(x=30, y=50)
Label(top, text="Email").place(x=30, y=90)
Label(top, text="Password").place(x=30, y=130)
Entry(top).place(x=100, y=50)
Entry(top).place(x=100, y=90)
Entry(top, show="*").place(x=100, y=130)
top.mainloop()
Here, each Label and Entry widget is positioned using specific x and y coordinates. The Password Entry also uses show="*" so that the entered characters are displayed as masked characters.
Prerequisites
A basic knowledge of Python programming is recommended before starting Tkinter. Understanding variables, functions, imports, and basic Python syntax will make it easier to follow the examples and work with Tkinter widgets.
Audience
This tutorial is intended for beginners and professionals who want to learn how desktop applications can be developed using Python Tkinter. Beginners can use it to understand the fundamental GUI concepts, while experienced Python developers can use the widget and layout references while building applications.
Problem-Solving
This guide is prepared to provide clear and practical information about Python Tkinter. If you encounter an issue while following the examples or notice an error in the tutorial, you can report it through the website’s contact form.
Continue exploring Tkinter to learn more about buttons, menus, and event handling and to develop increasingly interactive Python desktop applications.
Conclusion
Python Tkinter provides the essential components required to create graphical desktop applications. By understanding the main widgets and learning how pack(), grid(), and place() arrange those widgets, developers can begin building structured and interactive interfaces.
The basic Tkinter workflow is straightforward: create the main window, add the required widgets, position them using a geometry manager, and start the event loop. With these fundamentals in place, you can continue learning individual Tkinter widgets and gradually develop more complete Python GUI applications.
Keywords: Python Tkinter Tutorial, python tkinter tutorial pdf, python tkinter tutorial w3schools, python tkinter examples, how to install tkinter in python, python tkinter projects, pip install tkinter, tkinter download, tkinter download windows, python tkinter tutorial, gui python tkinter tutorial, real python tkinter tutorial, python tkinter tutorial javatpoint, python tkinter tutorial in hindi, python tkinter, python tkinter tutorial for beginners, python tkinter tutorial geeksforgeeks