Create professional user-interfaces for your Python apps

Stop searching for how to create GUI applications with Python — it's all here. I've been teaching Python & Qt for 8 years, helping thousands of developers just like you to bring their apps to life. Let's make your project a success!

Start the PyQt5 tutorial

or start the PySide6 tutorial, PyQt6 tutorial or PySide2 tutorial.

Martin Fitzpatrick, PhD

Learning tracks

Struggling to create desktop apps in Python?
Not any more.

My focused learning tracks will get you started creating GUIs in minutes, leading you through common use-cases, with a mix of tutorials, hands-on exercises and videos so you can master each topic.

Create Desktop GUI Applications with PyQt6

PyQt is a Python library for creating GUI applications using the Qt toolkit. Created by Riverbank Computing, PyQt is free software (GPL licensed) and has been in development since 1999. The latest version PyQt6 -- based on Qt 6 -- was released in 2021 and the library continues to be updated.

Start this track

Create Desktop GUI Applications with PyQt5

PyQt is a Python library for creating GUI applications using the Qt toolkit. Created by Riverbank Computing, PyQt is free software (GPL licensed) and has been in development since 1999. PyQt5 was released in 2016 and last updated in October 2021.

Start this track

Create Desktop GUI Applications with PySide6

PySide, also known as Qt for Python, is a Python library for creating GUI applications using the Qt toolkit. PySide is the official binding for Qt on Python and is now developed by The Qt Company itself.

Start this track

My Books

In-depth guides to Python GUI programming
More than just the basics.

My books take you from first principles to fully-functional apps, not toy examples. Buy once, and get free updates for life — last updated in 2021.

Create GUI Applications with Python & Qt6
PyQt6 1st Edition, April 2021

Create GUI Applications with Python & Qt6
PySide6 1st Edition, April 2021

Create GUI Applications with Python & Qt5
PyQt5 4th Edition, April 2021

Latest Updates

Implementing QPainter flood fill in PyQt5/PySide

Filling irregular regions in a QPainter canvas

The ModelView Architecture

Qt's MVC-like interface for displaying data in views

The ModelView Architecture

Qt's MVC-like interface for displaying data in views

Displaying tabular data in Qt6 ModelViews

Create customized table views with conditional formatting, numpy and pandas data sources.

Displaying tabular data in Qt5 ModelViews

Create customized table views with conditional formatting, numpy and pandas data sources.

Creating searchable widget dashboards

Make dashboard UIs easier to use with widget search & text prediction

Creating searchable widget dashboards

Make dashboard UIs easier to use with widget search & text prediction

Q&A: How do I display an Image in PyQt5/PySide2?

Using QLabel to easily add images to your applications

Plotting with Matplotlib

Create PyQt5 plots with the popular Python plotting library
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16