Hello 👋 I'm Martin Fitzpatrick.

I write accessible projects, books, and tutorials that help people get more confident with Python.

6th Edition - Create GUI Applications with Python & Qt, Released

PyQt6 & PySide6 Books updated for 2025 with model view controller architecture, new Python/Qt features and more examples

PyQt6 Book now available in Korean: 파이썬과 Qt6로 GUI 애플리케이션 만들기

The hands-on guide to creating GUI applications with Python gets a new translation

Getting Started With Git and GitHub in Your Python Projects

Version-Controlling Your Python Projects With Git and GitHub

Working With Classes in Python

Understanding the Intricacies of Python Classes

Getting started with VS Code for Python

Setting up a Development Environment for Python programming

PyQt6, PySide6, PyQt5 and PySide2 Books -- updated for 2022!

New editions extended and updated, now 780+ pages

DiffCast: Hands-free Python Screencast Creator

Create reproducible programming screencasts without typos or edits

PySide6 tutorial now available

Complete course, updated for PySide2 & PySide6
1 2 3 4 5 6 7 8 9 10 11

Python GUIs

Streamlit Widgets

An Overview of Commonly Used Widgets in Streamlit

Getting Started With Flet for GUI Development

Your First Steps With the Flet Library for Desktop and Web Python GUIs

Getting Started With NiceGUI for Web UI Development in Python

Your First Steps With the NiceGUI Library for Web UI Development

Getting Started With DearPyGui for GUI Development

Your First Steps With the DearPyGui Library for Desktop Python GUIs

Saving and Restoring Application Settings with QSettings in PyQt6

Learn how to use QSettings to remember user preferences, window sizes, and configuration options between sessions

6th Edition - Create GUI Applications with Python & Qt, Released

PyQt6 & PySide6 books updated for 2025 with model view controller architecture, new Python/Qt features and more examples

Tkinter Widgets

A walkthrough of Tkinter's basic widgets

Build an Image Noise Reduction Tool with Streamlit and OpenCV

Clean up noisy images using OpenCV denoising algorithms in Python

Kivy's Complex Widgets

Learn How to Use Kivy's Complex UX Widgets in Your Apps

Building a Currency Converter Application using Tkinter

Convert between currencies with real-time exchange rates

How to Show Only Icons in QTableView Cells (Hide Text)

Use custom model roles to display icons without text in your PyQt6 tables

How to Show Only Icons in QTableView Cells (Hide Text)

Use custom model roles to display icons without text in your PySide6 tables

See more at Python GUIs