Written courses

In depth Python GUI courses
From basics to complete apps.

Focused courses looking at key aspects of building GUIs with Python. Pick & mix the courses to solve your problems, or see the complete tutorials.

Extended UI features

Extending your apps with complex GUI behaviour

Threads & Processes

Run concurrent tasks without impacting your UI

Custom Widgets

Designing your own custom widgets in PyQt

Mozzarella Ashbadger

Build your own tabbed web browser with PyQt5

Graphics and Plotting

Vector graphics and plotting using PyQtGraph

ModelViews and Databases

Connecting your application to data sources

Packaging and distribution

Sharing your awesome applications with other people

QGraphics Framework

Vector graphic interfaces in PyQt5

Creating applications with Qt Designer

Using the drag-drop designer to develop your apps

Getting started with PyQt5

Take your first steps building apps with Python & Qt5

Extended UI features

Extending your apps with complex GUI behaviour

Threads & Processes

Run concurrent tasks without impacting your PyQt6 UI

Custom Widgets

Designing your own custom widgets in PyQt6

Mozzarella Ashbadger

Build your own tabbed web browser with PyQt6

Graphics and Plotting

Vector graphics and plotting using PyQtGraph in PyQt6

ModelViews and Databases

Connecting your PyQt6 application to data sources

Packaging and distribution

Sharing your awesome PyQt6 applications with other people

QGraphics Framework

Vector graphic interfaces in PyQt6

Creating applications with Qt Designer

Using the drag-drop designer to develop your PyQt6 apps

Getting started with PyQt6

Take your first steps building apps with Python & Qt6

Extended UI features

Extending your PySide apps with complex GUI behaviour

Threads & Processes

Run concurrent tasks without impacting your PySide UI

Custom Widgets

Designing your own custom widgets in PySide

Getting started with PySide

Take your first steps building Python & Qt5 apps with PySide

ModelViews and Databases

Connecting your PySide application to data sources

Packaging and distribution

Sharing your PySide applications with other people

Graphics and Plotting

Vector graphics and plotting using PyQtGraph in PySide

QGraphics Framework

Vector graphic interfaces in PySide2

Creating applications with Qt Designer

Using the drag-drop designer to develop your PySide apps

Extended UI features

Extending your PySide apps with complex GUI behaviour

Threads & Processes

Run concurrent tasks without impacting your PySide UI

Custom Widgets

Designing your own custom widgets in PySide6

Getting started with PySide6

Take your first steps building Python & Qt6 apps with PySide6

ModelViews and Databases

Connecting your PySide application to data sources

Packaging and distribution

Sharing your PySide6 applications with other people

Graphics and Plotting

Vector graphics and plotting using PyQtGraph in PySide6

QGraphics Framework

Vector graphic interfaces in PySide6

Creating applications with Qt Designer

Using the drag-drop designer to develop your PySide apps

QtQuick & QML

Building modern PyQt6 GUIs with QtQuick & QML

QtQuick & QML

Building modern PySide2 GUIs with QtQuick & QML

QtQuick & QML

Building modern PySide6 GUIs with QtQuick & QML

QtQuick & QML

Building modern PyQt5 GUIs with QtQuick & QML

Getting started with TKinter

Building simple GUI applications with Tk & Python

Packaging and distribution

Sharing your Tkinter applications with other people