Create Graphical User Interfaces (GUI)

Learning PathSkills: Tkinter, PyQt, wxPython, Kivy, GUI Layouts, Event Handling, Database Integration, Thread Management, Mobile App Development, GUI Design

A person pointing at a whiteboard that assembles different interfaces of PyQT

In this learning path, you’ll build graphical user interfaces with Python using multiple frameworks. Starting with Tkinter basics and a hands-on game project, you’ll then explore PyQt for professional desktop applications with layouts, menus, databases, and threading. You’ll also work with wxPython and Kivy for cross-platform and mobile development.

Create Graphical User Interfaces (GUI)

Learning Path ⋅ 12 Resources

Getting Started With Tkinter

Tkinter is Python’s built-in GUI toolkit. You’ll learn the basics of creating windows, widgets, and event-driven applications, then put your skills to work by building a game.

Title image for Building a Python GUI Application With Tkinter (Python GUI Programming With Tkinter)

Course

Building a Python GUI Application With Tkinter

Learn the basics of GUI programming with Tkinter, the de facto Python GUI framework. Master GUI programming concepts such as widgets, geometry managers, and event handlers. Then, put it all together by building two applications: a temperature converter and a text editor.

Title image for Build a Tic-Tac-Toe Game With Python and Tkinter (Build a Tic-Tac-Toe Game With Python and Tkinter)

Tutorial

Build a Tic-Tac-Toe Game With Python and Tkinter

In this step-by-step project, you'll learn how to create a tic-tac-toe game using Python and the Tkinter GUI framework. Tkinter is cross-platform and is available in the Python standard library. Creating a game in Python is a great and fun way to learn something new and exciting!

Building With PyQt

PyQt gives you access to the Qt framework for building professional desktop applications. You’ll learn to create menus, layouts, calculators, and database-driven apps, and how to keep your GUIs responsive with threads.

Title image for Python and PyQt: Creating Menus, Toolbars, and Status Bars (Python and PyQt: Creating Menus, Toolbars, and Status Bars)

Tutorial

Python and PyQt: Creating Menus, Toolbars, and Status Bars

In this step-by-step tutorial, you’ll learn how to create, customize, and use Python menus, toolbars, and status bars for creating GUI applications using PyQt.

Title image for Build a GUI Calculator With PyQt and Python (Python and PyQt: Building a GUI Desktop Calculator)

Course

Build a GUI Calculator With PyQt and Python

Learn how to create graphical user interface (GUI) applications with Python and PyQt. Once you've covered the basics, you'll build a fully functional desktop calculator that can respond to user events with concrete actions.

Title image for Creating PyQt Layouts for GUI Applications (PyQt Layouts: Create Professional-Looking GUI Applications)

Course

Creating PyQt Layouts for GUI Applications

In this step-by-step course, you’ll learn how to use PyQt layouts to arrange and manage the graphical components on your GUI applications. With the help of PyQt's layout managers, you'll be able to create polished and professional GUIs with minimal effort.

Title image for Handling SQL Databases With PyQt: The Basics (Handling SQL Databases With PyQt: The Basics)

Tutorial

Handling SQL Databases With PyQt: The Basics

In this step-by-step tutorial, you’ll learn how to use PyQt's built-in SQL support to create GUI applications that effectively manage SQL databases.

Title image for Qt Designer and Python: Build Your GUI Applications Faster (Qt Designer and Python: Build Your GUI Applications Faster)

Tutorial

Qt Designer and Python: Build Your GUI Applications Faster

Learn how to use Qt Designer to create GUIs from your windows and dialogs and use them in your Python applications.

Title image for Use PyQt's QThread to Prevent Freezing GUIs (Use PyQt's QThread to Prevent Freezing GUIs)

Tutorial

Use PyQt's QThread to Prevent Freezing GUIs

In this step-by-step tutorial, you’ll learn how to prevent freezing GUIs by offloading long-running tasks to worker QThreads in PyQt.

Title image for Build a Contact Book With Python, PyQt, and SQLite (Build a Contact Book With Python, PyQt, and SQLite)

Tutorial

Build a Contact Book With Python, PyQt, and SQLite

In this step-by-step project, you'll build a minimal contact book application using Python, with PyQt to build the application's GUI and SQLite to handle the database.

Title image for Build a Bulk File Rename Tool With Python and PyQt (Build a Bulk File Rename Tool With Python and PyQt)

Tutorial

Build a Bulk File Rename Tool With Python and PyQt

In this step-by-step project, you'll build a bulk file rename tool using Python and pathlib to manage the file renaming process and PyQt to provide the application's GUI.

Exploring Other Frameworks

Beyond Tkinter and PyQt, Python has other GUI frameworks worth knowing. wxPython provides native-looking interfaces, while Kivy lets you build cross-platform apps for desktop and mobile.

Title image for How to Build a Python GUI Application With wxPython (How to Build a Python GUI Application With wxPython)

Tutorial

How to Build a Python GUI Application With wxPython

Learn how to create a cross-platform graphical user interface (GUI) using Python and the wxPython toolkit. A graphical user interface is an application that has buttons, windows, and lots of other widgets that the user can use to interact with your application.

Title image for Build Cross-Platform GUI Apps With Kivy (Build a Mobile Application With the Kivy Python Framework)

Course

Build Cross-Platform GUI Apps With Kivy

Learn how to build a cross-platform mobile application with Python and the Kivy GUI framework. You'll discover how to develop an application that can run on your desktop as well as your phone. Then, you'll package your app for Windows, Linux, and macOS.

Congratulations on completing this learning path! You’ve learned to build GUI applications with Tkinter, PyQt, wxPython, and Kivy, covering layouts, events, databases, and threading.

Continue your advanced Python journey with the next learning path:

Learning Path

Understand CPython

8 Resources ⋅ Skills: Python, Pointers, Memory Management, Profiling, CPython Source Code, C Extensions, Python Bindings, Memory Mapping

You might also be interested in these related learning paths:

Got feedback on this learning path?

Looking for real-time conversation? Visit the Real Python Community Chat or join the next “Office Hours” Live Q&A Session. Happy Pythoning!

« Browse All Learning Paths