Desktop Apps with Qt Widgets and PySide6

Learn to build powerful desktop applications using Qt Widgets and Python. Leverage Python's simplicity with Qt's robust GUI framework to create professional applications with minimal complexity and maximum productivity.

  • Beginner → Advanced
  • 24h 36m of video
  • Qt
  • PySide6
  • GUI
  • Desktop
  • Python

About this course

This course combines the power of Python with the robustness of Qt to create amazing desktop applications. You’ll discover how Python’s readable syntax makes GUI development more accessible, while Qt provides the professional framework needed for real-world applications.

  • Python’s Simplicity: easy to learn, powerful to use
  • Cross-Platform Magic: write once, run on Windows, Mac, and Linux
  • Real-World Projects: build applications you can actually use
  • Modern Python Patterns: best practices for GUI development
  • Complete Integration: connect to databases, APIs, and more

What you'll learn

  • Installing PySide6, organizing GUI code in classes, signals and slots
  • Essential widgets, layouts and size policies, message boxes, dialogs for files, fonts, colors, and input
  • Designing interfaces visually, loading .ui files with QUiLoader, compiling to Python, managing resources
  • Qt styles, QPalette, style sheets, and external style sheets
  • QSettings, QFile and QDir, QNetworkAccessManager and JSON, Qt Linguist and QTranslator, application icons
  • Event system and filters, custom events and widgets, QPainter, drag and drop with the clipboard
  • Model/View basics, custom table and tree models, delegates, proxy models, SQLite app
  • Scene-based graphics, selections and transforms, resizable items, rubber band selection, drag and drop into scenes
  • Copy, cut, and paste with data serialization, saving and loading documents, undo/redo with command classes
  • Packaging PySide6 apps, deploying on Windows (windeployqt, Qt Installer Framework), Linux (linuxdeployqt), and Mac

Projects you'll build

  1. A Painting Application

    A Painting Application

    A professional painting application built with Qt Widgets and PySide6, with selectable and resizable items, menus, toolbars, and custom drawing tools for pens, shapes, and an eraser. You’ll build it in stages: first the interface and canvas, then a more powerful version on the Graphics View framework, then the polish that makes it feel like a real product, including pen and brush property panels, a color picker, custom tool cursors, copy, cut, and paste, saving and loading documents, and full undo/redo.

  2. A Flappy Bird Game

    A Flappy Bird Game

    You will create a Flappy Bird clone using Qt Widgets and PySide6, featuring smooth animations, collision detection, and score tracking. Built on the Graphics View framework, you’ll make the pillars and the bird as graphics items, make the bird fly, and detect collisions between them.

Curriculum

13 chapters · 107 lessons · 24h 36m

Chapter 1 Introduction 3 lessons
  1. 1.1 Welcome Free preview
  2. 1.2 Resources and Source Code Free preview
  3. 1.3 What You'll Build Free preview
Chapter 2 Environment Setup 3 lessons
  1. 2.1 Installing PySide6 Free preview
  2. 2.2 Understanding the Code Free preview
  3. 2.3 Organizing Code in Classes Free preview
Chapter 3 Signals and Slots 1 lesson
  1. 3.1 Signals and slots Free preview
Chapter 4 A Tour of Qt Widgets 15 lessons
  1. 4.1 Introduction Free preview
  2. 4.2 QWidget 12 min Locked
  3. 4.3 QMainWindow 25 min Locked
  4. 4.4 QMessageBox 18 min Locked
  5. 4.5 QPushButton 6 min Locked
  6. 4.6 QLabel and QLineEdit 21 min Locked
  7. 4.7 QTextEdit 17 min Locked
  8. 4.8 QLabel and Images 5 min Locked
  9. 4.9 Size Policies 14 min Locked
  10. 4.10 Grid Layout 8 min Locked
  11. 4.11 CheckBox and RadioButton 15 min Locked
  12. 4.12 QListWidget 11 min Locked
  13. 4.13 QTabWidget 8 min Locked
  14. 4.14 QComboBox 7 min Locked
  15. 4.15 Summary 1 min Locked
Chapter 5 Qt Designer 12 lessons
  1. 5.1 Introduction and Install 7 min Locked
  2. 5.2 Using Qt Designer 9 min Locked
  3. 5.3 Using Qt Creator 6 min Locked
  4. 5.4 Qt Designer QUiLoader 9 min Locked
  5. 5.5 Qt Designer QUiLoader V2 6 min Locked
  6. 5.6 Compiling Ui Files to Python 15 min Locked
  7. 5.7 Using Resources Manually Through Qt Designer 16 min Locked
  8. 5.8 Using Resources Manually Through Qt Creator 5 min Locked
  9. 5.9 Automatic Resources Through Qt Designer 7 min Locked
  10. 5.10 Automatic Resources Through Qt Creator 3 min Locked
  11. 5.11 QMainWindow with QDesigner Resources 13 min Locked
  12. 5.12 Summary 2 min Locked
Chapter 6 Dialogs 8 lessons
  1. 6.1 Introduction 1 min Locked
  2. 6.2 QDialog 25 min Locked
  3. 6.3 QDialogButtonBox 12 min Locked
  4. 6.4 QFileDialog 13 min Locked
  5. 6.5 QFontDialog 7 min Locked
  6. 6.6 QColorDialog 11 min Locked
  7. 6.7 QInputDialog 11 min Locked
  8. 6.8 Summary 1 min Locked
Chapter 7 Styling 7 lessons
  1. 7.1 Introduction 1 min Locked
  2. 7.2 Styles 11 min Locked
  3. 7.3 QPalette 7 min Locked
  4. 7.4 QPalette Limitation 8 min Locked
  5. 7.5 Style Sheets 11 min Locked
  6. 7.6 External Sheets 8 min Locked
  7. 7.7 Summary 2 min Locked
Chapter 8 Settings 1 lesson
  1. 8.1 QSettings 20 min Locked
Chapter 9 Files and Directories 4 lessons
  1. 9.1 Introduction 2 min Locked
  2. 9.2 QFile 16 min Locked
  3. 9.3 QDir 17 min Locked
  4. 9.4 Summary 1 min Locked
Chapter 10 Networking Basics 4 lessons
  1. 10.1 Introduction 3 min Locked
  2. 10.2 QNetworkAcessManager 16 min Locked
  3. 10.3 JSON 9 min Locked
  4. 10.4 Summary 1 min Locked
Chapter 11 Event Handling 11 lessons
  1. 11.1 Chapter Intro 3 min Locked
  2. 11.2 Overview of Events 13 min Locked
  3. 11.3 Specific Events 26 min Locked
  4. 11.4 Event Propagation 31 min Locked
  5. 11.5 Override QObject Event 16 min Locked
  6. 11.6 Event Filters Theory 4 min Locked
  7. 11.7 Event Filter on QObject 14 min Locked
  8. 11.8 Event Filter on QApplication 17 min Locked
  9. 11.9 QApplication Notify 13 min Locked
  10. 11.10 Posting and Sending Events 17 min Locked
  11. 11.11 Chapter Summary 2 min Locked
Chapter 12 Custom Widgets 6 lessons
  1. 12.1 Chapter Intro 2 min Locked
  2. 12.2 Composing Widgets 18 min Locked
  3. 12.3 Composing DateTime 13 min Locked
  4. 12.4 Modifying Widgets - DoubleClickableButton 8 min Locked
  5. 12.5 Water Level Monitor 37 min Locked
  6. 12.6 Promoting Widgets 9 min Locked
Chapter 13 The Model View Architecture 32 lessons
  1. 13.1 Introduction 35 min Locked
  2. 13.2 QListWidget 27 min Locked
  3. 13.3 QTableWidget 20 min Locked
  4. 13.4 QTreeWidget 21 min Locked
  5. 13.5 QFileSystemModel 42 min Locked
  6. 13.6 QStringListModel 20 min Locked
  7. 13.7 QSortFilterProxyModel 14 min Locked
  8. 13.8 Custom Models Overview 10 min Locked
  9. 13.9 Custom Read-Only Model 29 min Locked
  10. 13.10 Editable Models with Headers 19 min Locked
  11. 13.11 Custom Models - Adding and Removing Rows 37 min Locked
  12. 13.12 Custom Models Custom Roles 17 min Locked
  13. 13.13 Custom Table Model 17 min Locked
  14. 13.14 Custom Model Delegates 34 min Locked
  15. 13.15 Delegate Custom Painting 30 min Locked
  16. 13.16 Delegate Custom Painting - sizeHint 8 min Locked
  17. 13.17 Custom Star Delegate - Overview 13 min Locked
  18. 13.18 Custom Star Delegate - The UI 9 min Locked
  19. 13.19 Custom Star Delegate - StarEditor 21 min Locked
  20. 13.20 Custom Star Delegate - Final 17 min Locked
  21. 13.21 Delegate Challenge 19 min Locked
  22. 13.22 Drag and Drop in Convenience Widgets 21 min Locked
  23. 13.23 Drag and Drop at Item Level 16 min Locked
  24. 13.24 Drag and Drop in Custom Models 26 min Locked
  25. 13.25 Person Tree Structure - The Design 11 min Locked
  26. 13.26 Building The Person Tree Structure 28 min Locked
  27. 13.27 Read-Only Tree Model - Concepts 17 min Locked
  28. 13.28 Read-Only Tree Model With In-Memory Data 21 min Locked
  29. 13.29 Read-Only Tree Model With Data From a File 24 min Locked
  30. 13.30 Editable Tree Model 48 min Locked
  31. 13.31 Expense Tracker 41 min Locked
  32. 13.32 Expense Tracker with SQLite 16 min Locked

More about this course

Many More Projects Along the Way

Alongside the two main projects, you’ll build smaller applications that each teach one idea well.

Freehand Painting and Drag and Drop

A freehand paint application with pen, rectangle, ellipse, and eraser tools, adjustable width, pen and fill colors, and a fill option, where you use Qt events at the lowest level. Then you’ll add drag and drop: dragging icons between widgets, receiving dropped images, and working with the clipboard. You’ll also meet your first graphics scene.

Custom Painting

Take over how widgets look with QPainter. You’ll draw cars from scratch with different wheel colors, build a traffic light, and explore painter transforms. You’ll also build a playground for pens, brushes, and gradients where you change pen width, style, cap, join, brush style, and antialiasing and watch the result, and create custom list items with images.

Model-View Architecture

See one model feed list, table, and tree views at the same time, browse your file system with QFileSystemModel, and build custom delegates for colored cells and a star rating editor. From there you’ll build custom editable models, tree structures, and an Expense Tracker backed by SQLite.

And more: a Water Level Monitor widget, a datetime widget, a double-clickable button, a Shape Maker with fills, outlines, and gradients, networking examples with JSON, and a multi-language app with a saved language choice.

After This Course, You’ll Be Able To:

  • Build beautiful desktop apps using Python and Qt
  • Create professional UIs with Qt Designer, custom widgets, and your own drawing code
  • Handle settings, files, networking, and SQLite databases
  • Package and deploy Python GUI applications on Windows, Linux, and Mac
  • Add GUI development to your Python skill set
  • Connect desktop apps to web services and databases

Created By Someone Who Understands The Struggle

“Python developers often struggle with GUI development. Most tutorials focus on simple examples that don’t translate to real applications. I created this course to bridge that gap.”

With years of experience in both Python and Qt development, Daniel Gakwaya has built a course that gives you:

  • Practical Python GUI patterns that actually work
  • Real-world application architecture
  • Solutions to common Python GUI problems

Whether you’re a Python developer looking to add GUI skills, or someone new to programming who wants to build desktop applications, this course gives you a clear, practical path forward.

What you’ll get:

  • 24+ hours of Python-focused video across 20 chapters and 211+ lessons
  • Complete Python source code for every project
  • Python GUI best practices guide
  • PySide6 setup and configuration
  • Downloadable PDFs and course resources
  • Lifetime updates as PySide6 and Python evolve
  • Discord community access with 4,000+ Qt developers
  • Certificate of completion

Your complete learning journey: by the end of the course you’ll have built production-quality applications and developed the confidence to create your own projects from scratch. From simple utilities to complex business applications, you’ll have the skills to bring your Python ideas to life with professional desktop interfaces.

🛡️ 30-DAY MONEY-BACK GUARANTEE

If you’re not completely satisfied with your progress after 30 days, get a full refund. No questions asked.

  • Full 30-day trial period
  • No questions asked
  • Email support for refunds
  • Risk-free learning

STILL HAVE QUESTIONS?

Get personalized help from instructor Daniel Gakwaya and the community.

Ready to build amazing Python desktop apps? Enroll today and start your journey. Or just start by watching the beginning free preview chapters to make sure the course works for you.

Your instructor

Daniel Gakwaya

Daniel is a Founder and Senior Software Engineer at Squared Computing. He has been writing software since 2011 and Qt is one of his favorite frameworks. Many of his cross platform Qt based projects are completed and out there on the market. Autodidact by nature ,he has a passion for learning new things and loves sharing knowledge with others. Especially people new to the dark art of software development.

What students say

No reviews are published yet.

Questions

Do I need prior programming experience?

No! The course is designed to be approachable. If you already have programming experience, you’ll be able to progress faster.

What if I get stuck on something?

You’ll have access to our Discord community of 4,000+ developers, plus direct help from Daniel. Most questions are answered within hours, and complex issues get detailed video responses.

How long will it take to complete?

Most students finish in 8-12 weeks studying 1-2 hours per day. With lifetime access, you can go at your own pace, with no pressure or deadlines.

Will this help me get a job?

Absolutely! The course focuses on real-world projects that showcase skills employers want. Many students have landed developer roles, freelance contracts, and promotions after completing our courses.

What if I'm not satisfied?

We offer a 30-day money-back guarantee. If you’re not completely satisfied with your progress, get a full refund, no questions asked.

Does the course get updated?

Yes! You get lifetime updates as technologies evolve. When Qt releases new versions or new content is added, you get it automatically at no extra cost.