“The easy way to create desktop applications”

PyQt5 Book

4th Edition, June 2020

Get the Book & Code ($9)

Or check the complete package

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

  • 665 pages of hands-on PyQt5 exercises
  • 211 code examples to experiment with
  • Support forum for all readers
  • Includes 4 example apps
  • Compatible with Python 3.4+
  • Code free to reuse in your own projects
  • PDF, EPub and Kindle formats
  • Includes free updates and new editions
    Last updated June 2020

I'm so confident I give you a 30 day no-questions money back guarantee — you even get to keep the book.

To help support developers in [[ countryRegion ]] I give a [[ localizedDiscount[couponCode] ]]% discount on all books and courses. Please share with friends and colleagues!

The book   The apps   Testimonials   About the author  

Looking for PySide2? I also have a PySide2 book.

Table of Contents

  1. Basic PyQt Features
    • My first Application
    • Signals & Slots
    • Widgets
    • Layouts
    • Actions, Toolbars & Menus
    • Dialogs
    • Windows
    • Events
  2. Qt Designer
    • Installing Qt Designer
    • Getting started with Qt Designer
    • The Qt Resource system
  3. Theming
    • Styles
    • Palettes
    • Icons
    • Qt Style Sheets (QSS)
  1. Model View Architecture
    • The Model View Architecture — Model View Controller
    • A simple Model View — a Todo List
    • Tabular data in ModelViews, with numpy & pandas
    • SQL databases with Qt models
  2. Further PyQt Features
    • Extending Signals
    • Routing
    • Working with command-line arguments
    • System tray & macOS menus
    • Enums & the Qt Namespace
  3. Custom Widgets
    • QPainter and Bitmap Graphics
    • Creating Custom Widgets
  1. Concurrent Execution
    • Introducing Threads & Processes
    • QRunnable and the QThreadPool
    • QRunnable Examples, Progress Bars & thread Managers
    • Running external commands with QProcess
  2. Plotting
    • PyQtGraph
    • Matplotlib
  3. Packaging & Distribution
    • Packaging with fbs
  4. Example applications
    • Web Browser
    • Minesweeper
  5. Appendices
    • Translating C++ to Python
    • PyQt5 vs. PySide2

Includes 211 code examples and 4 fully-functional applications to experiment with.

Get the Book & Code ($9)

What you'll learn

Basic concepts and first steps

Starting from the very basics of creating a desktop window the book takes you on a tour of the key features of PySide2 you can use to build real-life applications.

We'll look at the basic building blocks of Qt applications — Widgets, Layouts & Signals and learn how Qt uses the event loop to handle and respond to user input.

Designing UIs with Qt Designer

Build your user interfaces visually in the Qt Designer drag-and-drop editor. We'll take a quick tour of the designer and show how to load your created interface into Python.

Unleash your creativity

Think the default look of Qt is a bit drab? You can customize almost anything using Styles, Palettes and Qt Style Sheets. We'll take a tour through how you can use these to completely customize the look and feel of your applications.

Build data-driven applications

Use Qt's MVC-like interface to work efficiently with data, right in your applications. Use custom data stores and sync widgets automatically, allowing you to focus on the logic.

Use tabular views to display SQL databases and numpy or pandas datastructures. Use linked widgets for easy editing.

Create your own custom widgets

Qt provides a huge number of built-in widgets, but sometimes you need a little something extra. Starting with an introduction to bitmap graphics we'll build up to creating entirely custom-drawn widgets for your apps.

Efficient apps with threads and processes

Are your apps stuttering to a halt? Learn how to use threads & processes to keep long-running calculations, loading large files or connections to remote servers all running smoothly.

Capture output from threads and processes and keep your users informed with progress bars and thread managers.

Visualize data with interactive charts

Use matplotlib or PyQtGraph to display data within your app. Use threads to create live dashboards, pulling data from your calculations or remote services.

Unlock the data-analysis capabilities of Python from within your applications.

Package your apps for distribution

Once your app is ready, it's time to share it!

Discover how to package your Qt applications for distribution on Windows, Mac and Linux.

Every chapter comes with hundreds of complete, runnable code examples.

What people are saying

Good start, looking forward to updates covering more advanced topics such as interacting with databases and APIs.

Thanks for this great book! You explain things so clearly.

As a beginner and hobbyist programmer trying to learn Python and implement a GUI this book a must-have.

Learn to make real apps

Build fully-functional PyQt5 applications instead of just toy examples. These apps introduce complex features including working with events, custom signals and multithreading. Full source code for all apps included, free to copy and use in your own applications.

Web Browser, Mozarella Ashbadger


Simple Paint

About me

Martin Fitzpatrick PhD

Senior Software Engineer, developing PyQt apps for 8 years.

I have been developing PyQt5 apps for 8 years. Building desktop applications to make data-analysis tools more user-friendly, Python was the obvious choice. Starting with Tk, later moving to wxWidgets and finally adopting PyQt, I haven't looked back since.

I love the flexibility Python gives you to create fun and useful things quickly. Paired with Qt it's a great way to build professional apps on the desktop.

The Complete Package

Book & Video Course

Learn better when you can watch what is supposed to happen? You're not alone! That's why we have videos to back up much of the core tutorials.

To help support developers in [[ countryRegion ]] I give a [[ localizedDiscount[couponCode] ]]% discount on all books and courses. Please share with friends and colleagues!

  • Get the book and 2 ½ hour video tutorials
  • Lifetime access to new content updated regularly
  • Mix and match video and tutorials to suit your needs.
  • Hands-on tutorials with the skills you've learnt.
  • One-off payment No Subscription
Upgrade to Video ($19) Just the Book ($9)


How will I get my purchase?

After completing your purchase you'll receive an email with a link to get your files and course. Keep it secret, keep it safe.

How do I get updates?

Each new release of the book will immediately be available on your account under "Books & Downloads". You can access new videos on the site as soon as they are available.

What if I don't like it?

If you decide that it is not for you, just reply to the purchase receipt email within 30 days and I'll issue you with a refund. If you could tell me why, that would be great too but it's not necessary.

I have other questions

If you still have questions just drop me an email.