0
0
PythonHow-ToBeginner · 4 min read

How to Create GUI in Python: Simple Steps with Tkinter

To create a GUI in Python, use the Tkinter library which is built-in and simple to use. You start by importing tkinter, creating a main window with Tk(), adding widgets like buttons or labels, and running the event loop with mainloop().
📐

Syntax

The basic syntax to create a GUI with Tkinter involves these steps:

  • Import Tkinter: Bring the library into your program.
  • Create main window: Use Tk() to make the main window.
  • Add widgets: Add buttons, labels, or other elements.
  • Run event loop: Use mainloop() to keep the window open and responsive.
python
import tkinter as tk

root = tk.Tk()  # Create main window
root.title('My GUI')  # Set window title

label = tk.Label(root, text='Hello, GUI!')  # Create a label widget
label.pack()  # Add label to window

root.mainloop()  # Start the event loop
💻

Example

This example creates a simple window with a label and a button. When you click the button, the label text changes.

python
import tkinter as tk

def change_text():
    label.config(text='Button clicked!')

root = tk.Tk()
root.title('Simple GUI')

label = tk.Label(root, text='Hello, GUI!')
label.pack(pady=10)

button = tk.Button(root, text='Click me', command=change_text)
button.pack(pady=10)

root.mainloop()
Output
A window appears with the text 'Hello, GUI!' and a button labeled 'Click me'. Clicking the button changes the label to 'Button clicked!'.
⚠️

Common Pitfalls

Some common mistakes when creating GUIs in Python with Tkinter include:

  • Not calling mainloop(), so the window closes immediately.
  • Forgetting to pack or grid widgets, so they don't appear.
  • Using blocking code inside event handlers, which freezes the GUI.
  • Not using command properly for buttons, causing no response on click.
python
import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text='Hello')
# label.pack()  # Forgot to pack, label won't show

button = tk.Button(root, text='Click me')  # No command set
button.pack()

# Missing root.mainloop() means window closes immediately

# Correct way:
# label.pack()
# button.config(command=lambda: label.config(text='Clicked'))
# root.mainloop()
📊

Quick Reference

Here is a quick reference for common Tkinter widgets and methods:

Widget/MethodDescription
Tk()Creates the main application window
LabelDisplays text or images
ButtonClickable button with action
EntrySingle-line text input
pack()Adds widget to window with simple layout
grid()Adds widget to window using grid layout
mainloop()Starts the GUI event loop

Key Takeaways

Use Tkinter's Tk() to create the main window and mainloop() to keep it open.
Always pack or grid your widgets so they appear in the window.
Assign functions to button commands to make them interactive.
Avoid blocking code inside event handlers to keep the GUI responsive.
Tkinter is built-in and great for simple Python GUIs without extra installs.