New Year new skills! Learn Qt5 and start creating desktop apps with Python — 20% off during January 2020 with the code NEWYEAR20

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

New to Qt5 and Python? Check out our complete PyQt5 tutorial.

Welcome to LearnPyQt, the complete guide to building GUI apps with Python & Qt.

Creating GUI apps with Python allows you to rapidly convert your scripts and utilities into professional-looking applications. Qt is a professional, mature and feature-full library for building GUIs. There are two wrappers for using Qt from Python — PyQt and PySide. Both give you all the power of the Qt5 framework directly from Python, including complex widgets, multimedia support, 2D vector graphics and a flexible model-view architecture.

See below for a complete PyQt5 tutorial taking you from basic principles to multithreading and model views. There is code for both PyQt5 and PySide2 along with example apps and custom widgets.

About the author

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.

Your Books & Downloads

If you buy the book your downloads will be available here. You'll have lifetime access to any future updates and additions.

What people are saying

Fantastic book, gave a great introduction to PyQt5 and some more complex features too!

I bought your book because I wanted a simple way to create native applications, and  I was not disappointed.

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