PySide2 Book 5th Edition, Updated 2024

“Learn the right way to create GUI applications with Python”

 Book

5th Edition, May 2024

Tired of piecing together incomplete and out of date examples? Looking for a book that answers real problems with well designed modern solutions? I've been teaching PySide for 8 years. I know the problems you're facing, because I've seen them before.

This book has already helped more than 10K developers make their apps a reality. Let's get your project finished!

Only[[ displayPrices['pri_01hf778jyaajk5vk1q6824sd44'] ]]

Get the eBook

Downloadable ebook (PDF, ePub) & Complete Source code

Purchasing Power Parity

To support developers in [[ country ]] I give [[ discount.discount_pc ]]% off on all books & courses. Use code [[ discount.coupon_code ]] in the checkout.
Get [[ discount.discount_pc ]]% off for the next [[ discount.duration ]] [[ discount.description ]] with the code [[ discount.coupon_code ]]
  • 750+ page ebook of hands-on PySide2 exercises
  • 280+ code examples to experiment with
  • Compatible with Python 3.4+
  • Code free to reuse in your own projects
  • Lifetime updates — last updated May 2024

Or go to Bundles

Over 10,000 copies sold

What People Are Saying

Martin Fitzpatrick is a Python programmer, author and tutor. He's been developing Python/Qt apps for 10 years. Starting out 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 & PySide.

In the book

Basic concepts and first steps

Starting from the very basics of creating a desktop window this modern PySide2 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 PySide2 applications — Widgets, Layouts & Signals and learn how PySide2 uses the event loop to handle and respond to user input.

Create GUI Applications Example pages
Creating applications with Qt Designer

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.

PySide2 themes and styles

Build data-driven applications

Use PySide2'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

PySide2 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.

Creating custom PySide2 widgets
Multithreading & processes with PySide2

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.

Plotting in PySide2
Example PySide2 applications

Build real apps not just examples

Move beyond simple examples, learning how to use to create fully-functional applications.

The book guides you through creating a simple Web browser, Minesweeper game, Paint app and a Simple Todo reminder, using the features you've learned.

Package your apps for distribution

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

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

Creating PySide2 installers
Create GUI Applications Paperback Photo

Not your average ebook

Forget the thin pamplets that just cover the basics. First published over 5 years ago Create GUI Applications has been regularly improved and extended following reader feedback. Now at over 750 pages, you benefit from the combined experience of thousands of readers.

Every chapter comes with complete, runnable code examples.

Book Bundles

Just this book — [[ displayPrices['pri_01hf778jyaajk5vk1q6824sd44'] ]]

If you know which library (PyQt vs. PySide) & versions (5 vs. 6) that you'll be using for your project & you don't need any other books.

Get the eBook

Create GUI Applications Book Bundle — [[ displayPrices['pri_01hf720z664x12fgdd74sjph7z'] ]]

If you're not sure which version of PyQt or PySide you need to use for your project, and want to keep your options open for the future, get this. Includes all current & future versions of Create GUI Applications with Python & Qt (Qt7 anyone?) as they become available. Learn the differences & see which fits best for your project.

Get the Bundle

Great GUI Bundle — [[ displayPrices['pri_01hf72pfd4x7s46jhcjcgh0q73'] ]]

Get all current versions of Create GUI Applications, Packaging Python Applications and every other Python GUI programming book I release, forever, for a one-time purchase. Choose this is you want to support my work & get priority access to new releases.

Get the Bundle

Purchasing Power Parity

To support developers in [[ country ]] I give [[ discount.discount_pc ]]% off on all books & courses. Use code [[ discount.coupon_code ]] in the checkout.
Get [[ discount.discount_pc ]]% off for the next [[ discount.duration ]] [[ discount.description ]] with the code [[ discount.coupon_code ]]

Table of Contents

  1. Basic PySide2 Features p6-190
    • My first Application
    • Signals & Slots
    • Widgets
    • Layouts
    • Actions, Toolbars & Menus
    • Dialogs
    • Windows
    • Events
  2. Qt Designer p191-225
    • Installing Qt Designer
    • Getting started with Qt Designer
    • The Qt Resource system
  3. Theming p226-301
    • Styles
    • Palettes
    • Icons
    • Qt Style Sheets (QSS)
  4. Model View Architecture p302-379
    • 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
  5. Custom Widgets p380-460
    • QPainter and Bitmap Graphics
    • Creating Custom Widgets
  6. Concurrent Execution p461-574
    • Introducing Threads & Processes
    • QRunnable and the QThreadPool
    • QRunnable Examples, Progress Bars & thread Managers
    • Running external commands with QProcess
  7. Plotting p575-614
    • PyQtGraph
    • Matplotlib
  8. Further Qt5 Features p615-666
    • Timers
    • Extending Signals
    • Working with Relative Paths
    • System tray & macOS menus
    • Enums & the Qt Namespace
    • Working with command-line arguments
  9. Packaging & Distribution p667-742
    • Packaging with PyInstaller
    • Creating a Windows Installer with Installforge
    • Creating a macOS Disk Image Installer
    • Creating a Linux Package with fpm
    • Packaging with fbs
  10. Example applications p743-790
    • Web Browser
    • Minesweeper
  11. Appendices
    • Translating C++ to Python
    • PyQt5 vs. PySide2

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

Get the eBook

Frequently Asked Questions

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?

You'll receive an email when new content is available, although you can opt out of this if you wish.

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