Desktop Apps with Qt Widgets and C++

Master professional desktop application development using Qt Widgets and modern C++. Build cross-platform applications that run seamlessly on Windows, macOS, and Linux with native performance and polished user interfaces.

  • Beginner → Advanced
  • 63h 4m of video

About this course

Most Qt tutorials stop at a button and a label. This course takes you the whole way, from your first line of C++ to installable applications you can ship to real users on Windows, Mac, and Linux. Across 23 chapters, 224+ lessons, and 60+ hours of video, you’ll learn modern C++ and Qt 6 side by side, and you’ll build real applications at every step: a full-featured painting app, a Flappy Bird game, custom widgets, an Expense Tracker backed by SQLite, and more. No scattered docs, no outdated Qt 5 examples, no gaps.

  • Start From Zero: no prior C++ or Qt needed. A C++ crash course has you building your first GUI app within the opening chapters
  • Native Speed, Everywhere: one codebase that runs on Windows, Mac, and Linux with true native performance
  • Real-World Projects: build applications you’d actually want to use, not disconnected demos
  • Modern C++ and Qt 6: smart pointers, Qt’s parent-child memory model, CMake, and the patterns professionals use today
  • Complete Integration: connect to SQLite databases, REST APIs, the file system, and more

What you'll learn

  • C++ crash course, heap vs stack, smart pointers, parent-child ownership, signals and slots, lambdas
  • 18+ widgets, layouts and size policies, dialogs, menus, toolbars, QPalette, stylesheets, resources
  • Saved settings, file handling, REST APIs and JSON, runtime language switching
  • Event system and filters, custom events and widgets, QPainter, drag and drop
  • Model/View basics, custom table and tree models, delegates, proxy models, SQLite app
  • Scene-based graphics with thousands of items, resizable items, selections, transforms, rubber band selection
  • Deployment on Windows, Linux, and Mac with windeployqt and the Qt Installer Framework

Projects you'll build

  1. A Painting Application

    A Painting Application

    This is a professional painting application with selectable items, rich menus, toolbars and custom drawing tools using Qt Widgets and C++.

  2. A Flappy Bird Clone

    A Flappy Bird Clone

    You will create a Flappy Bird clone using Qt Widgets and C++, 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

21 chapters · 222 lessons · 63h 4m

Chapter 1 Welcome 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 2 lessons
  1. 2.1 Environment setup - Windows Free preview
  2. 2.2 Environment setup - Linux Ubuntu Free preview
Chapter 3 Getting Started, C++ Crash Course 16 lessons
  1. 3.1 Introduction Free preview
  2. 3.2 Qt Creator User Interface Free preview
  3. 3.3 Standard C++ Console Apps (Non Qt Console) Free preview
  4. 3.4 Qt Console Apps Free preview
  5. 3.5 Streams Free preview
  6. 3.6 Data Types Free preview
  7. 3.7 Flow Control and Loops Free preview
  8. 3.8 Practice - Guess My Number Free preview
  9. 3.9 Functions Free preview
  10. 3.10 Classes Declarations and Instantiations Free preview
  11. 3.11 Classes Constructors Free preview
  12. 3.12 Classes Multiple Files Free preview
  13. 3.13 Build Process Declarations and Definitions Free preview
  14. 3.14 Qt GUI Intro Free preview
  15. 3.15 Practice - Guess My Number GUI Free preview
  16. 3.16 Summary Free preview
Chapter 4 Memory Management 5 lessons
  1. 4.1 Introduction 1 min Locked
  2. 4.2 Heap and Stack Memory 20 min Locked
  3. 4.3 Smart Pointers 14 min Locked
  4. 4.4 Qt Parent Child Relationship 12 min Locked
  5. 4.5 Summary 1 min Locked
Chapter 5 Signals and Slots 7 lessons
  1. 5.1 Introduction 2 min Locked
  2. 5.2 Lambdas 31 min Locked
  3. 5.3 Signals and Slots 21 min Locked
  4. 5.4 Practice - Slider and ProgressBar Connected 10 min Locked
  5. 5.5 Practice - Calory Counter 22 min Locked
  6. 5.6 Qt6 Property Bindings 2 min Locked
  7. 5.7 Summary 1 min Locked
Chapter 6 A Tour of Qt Widgets 19 lessons
  1. 6.1 Introduction 2 min Locked
  2. 6.2 QWidget 25 min Locked
  3. 6.3 QMainWindow 24 min Locked
  4. 6.4 QMessageBox 14 min Locked
  5. 6.5 QPushButton 7 min Locked
  6. 6.6 QLineEdit 19 min Locked
  7. 6.7 QTextEdit 16 min Locked
  8. 6.8 QLabel 15 min Locked
  9. 6.9 QHBoxLayout 13 min Locked
  10. 6.10 QVBoxLayout 8 min Locked
  11. 6.11 Size Policies and Stretches 13 min Locked
  12. 6.12 QGridLayout 10 min Locked
  13. 6.13 RadioButton and Checkbox 17 min Locked
  14. 6.14 QList 7 min Locked
  15. 6.15 QListWidget 13 min Locked
  16. 6.16 QTabWidget 10 min Locked
  17. 6.17 QComboBox 15 min Locked
  18. 6.18 Menus, Toolbars and Actions 21 min Locked
  19. 6.19 Summary 3 min Locked
Chapter 7 Dialogs 8 lessons
  1. 7.1 Introduction 1 min Locked
  2. 7.2 Dialog 32 min Locked
  3. 7.3 QDialogButtonBox 17 min Locked
  4. 7.4 QFileDialog 17 min Locked
  5. 7.5 QFontDialog 7 min Locked
  6. 7.6 QColorDialog 13 min Locked
  7. 7.7 QInputDialog 10 min Locked
  8. 7.8 Summary 2 min Locked
Chapter 8 Resources 3 lessons
  1. 8.1 Qt Resource System Theory 5 min Locked
  2. 8.2 Qt Resource System Demo 13 min Locked
  3. 8.3 Summary 2 min Locked
Chapter 9 Styling 6 lessons
  1. 9.1 Styling Overview 7 min Locked
  2. 9.2 QPalette 12 min Locked
  3. 9.3 Stylesheets Inline 15 min Locked
  4. 9.4 Stylesheets External 21 min Locked
  5. 9.5 More with Stylesheets 6 min Locked
  6. 9.6 Summary 3 min Locked
Chapter 10 Settings 3 lessons
  1. 10.1 Settings Theory 6 min Locked
  2. 10.2 Settings Demo 28 min Locked
  3. 10.3 Summary 1 min Locked
Chapter 11 Files and Directories 3 lessons
  1. 11.1 QFile 22 min Locked
  2. 11.2 QDir 17 min Locked
  3. 11.3 Summary 1 min Locked
Chapter 12 Networking 4 lessons
  1. 12.1 Qt Network Offerings 8 min Locked
  2. 12.2 QNetworkAccessManager 20 min Locked
  3. 12.3 Building a JSON HTTP Client 15 min Locked
  4. 12.4 Summary 1 min Locked
Chapter 13 Event Handling 11 lessons
  1. 13.1 Chapter Intro 1 min Locked
  2. 13.2 Overview of Events in Qt 13 min Locked
  3. 13.3 Specific Events 46 min Locked
  4. 13.4 Event Propagation 32 min Locked
  5. 13.5 Override QObject Event 14 min Locked
  6. 13.6 Event Filters Theory 3 min Locked
  7. 13.7 Event Filter on QObject 15 min Locked
  8. 13.8 Event Filter on QApplication 10 min Locked
  9. 13.9 QApplication Notify 18 min Locked
  10. 13.10 Posting and Sending Events 18 min Locked
  11. 13.11 Chapter Summary 3 min Locked
Chapter 14 Custom Widgets 8 lessons
  1. 14.1 Chapter Intro 2 min Locked
  2. 14.2 Composing Widgets 29 min Locked
  3. 14.3 Composing DateTime 12 min Locked
  4. 14.4 Modifying Widgets - DoubleClickableButton 11 min Locked
  5. 14.5 Water Level Monitor - Indicator 34 min Locked
  6. 14.6 Water Level Monitor - Tank 21 min Locked
  7. 14.7 Promoting Widgets 15 min Locked
  8. 14.8 Chapter Summary 1 min Locked
Chapter 15 Painting and Drawing 17 lessons
  1. 15.1 Chapter Intro 2 min Locked
  2. 15.2 The Coordinate System 37 min Locked
  3. 15.3 Drawing on a Pixmap 9 min Locked
  4. 15.4 Drawing Shapes 28 min Locked
  5. 15.5 QPen 15 min Locked
  6. 15.6 QBrush 12 min Locked
  7. 15.7 Brush Gradients 15 min Locked
  8. 15.8 Painter Path 16 min Locked
  9. 15.9 Painter Transforms 19 min Locked
  10. 15.10 Car Painting 17 min Locked
  11. 15.11 Shape Maker - UI 13 min Locked
  12. 15.12 Shape Maker - Canvas 25 min Locked
  13. 15.13 Shape Maker - All Together 18 min Locked
  14. 15.14 PainterApp - UI 23 min Locked
  15. 15.15 PainterApp - Canvas 1h 5m Locked
  16. 15.16 Water Level Monitor Improved 35 min Locked
  17. 15.17 Chapter Summary 2 min Locked
Chapter 16 Drag and Drop / Clipboard 9 lessons
  1. 16.1 Chapter Intro 2 min Locked
  2. 16.2 Drag Drop Architecture Concepts 23 min Locked
  3. 16.3 Receiving Drag Operations 25 min Locked
  4. 16.4 Receiving Dropped Images 9 min Locked
  5. 16.5 Drag Drop Between Widgets 51 min Locked
  6. 16.6 Data Transfer Through Mime Data Subclass 21 min Locked
  7. 16.7 Clipboard 12 min Locked
  8. 16.8 Painter App Clipboard and Drag Drop 17 min Locked
  9. 16.9 Chapter Summary 2 min Locked
Chapter 17 Model View Architecture - Advanced 30 lessons
  1. 17.1 Model View Architecture Birds Eye View 7 min Locked
  2. 17.2 QListWidget 38 min Locked
  3. 17.3 QTableWidget 26 min Locked
  4. 17.4 QTreeWidget 22 min Locked
  5. 17.5 QFileSystemModel 34 min Locked
  6. 17.6 QStringListModel 20 min Locked
  7. 17.7 QSortFilterProxyModel 15 min Locked
  8. 17.8 Read-Only Custom Models 36 min Locked
  9. 17.9 Editable Models With Custom Headers 29 min Locked
  10. 17.10 Adding and Removing Rows in Editable Models 43 min Locked
  11. 17.11 Custom Roles in Custom Models 23 min Locked
  12. 17.12 Custom Table Model 24 min Locked
  13. 17.13 Delegates in Custom Models 44 min Locked
  14. 17.14 Custom Painted Delegates 37 min Locked
  15. 17.15 Custom Star Delegate - Overview 13 min Locked
  16. 17.16 Custom Star Delegate - The UI 11 min Locked
  17. 17.17 Custom Star Delegate - StarEditor 25 min Locked
  18. 17.18 The Actual Star Delegate 23 min Locked
  19. 17.19 Delegates Challenge 33 min Locked
  20. 17.20 Drag and Drop In Convenience Widgets 22 min Locked
  21. 17.21 Drag and Drop At Item Level 18 min Locked
  22. 17.22 Drag and Drop in Custom Models 44 min Locked
  23. 17.23 Person Tree Structure - Concepts 17 min Locked
  24. 17.24 Building The Structure 39 min Locked
  25. 17.25 Custom Read-Only Tree Model - Concepts 15 min Locked
  26. 17.26 Custom Read-Only Tree Model - In Memory Data 28 min Locked
  27. 17.27 Custom Read-Only Tree Model - Data From File 31 min Locked
  28. 17.28 Editable Tree Model 58 min Locked
  29. 17.29 Expense Tracker Project 40 min Locked
  30. 17.30 Expense Tracker Project with SQLite 14 min Locked
Chapter 18 Graphics View Framework 34 lessons
  1. 18.1 Graphics View Framework: Chapter Overview 11 min Locked
  2. 18.2 Getting Started: Adding Items 23 min Locked
  3. 18.3 Getting Started: Key Events and Scene Size 26 min Locked
  4. 18.4 Getting Started: Coordinate Systems 13 min Locked
  5. 18.5 Event Propagation 22 min Locked
  6. 18.6 Parent Child Relationship 20 min Locked
  7. 18.7 Drawing Items 28 min Locked
  8. 18.8 Working with Selections 40 min Locked
  9. 18.9 Working with Transforms 39 min Locked
  10. 18.10 Working with Selection Areas: Set Up 36 min Locked
  11. 18.11 Working with Selection Areas: Draw Foreground, Draw Background 15 min Locked
  12. 18.12 Working with Selection Areas: Zooming, Reset and Fit in View 15 min Locked
  13. 18.13 Building Resizable Items: Theory 15 min Locked
  14. 18.14 Resizable Items: Raw Resizable Rectangle Item 41 min Locked
  15. 18.15 Resizable Items: Raw Resizable Pixmap and Star Item 25 min Locked
  16. 18.16 Resizable Items: Formal Interface 46 min Locked
  17. 18.17 GraphicsScene: Render Scene To Image 11 min Locked
  18. 18.18 Housing Widgets in Graphics Scene 16 min Locked
  19. 18.19 Drag And Drop: ShapeListWidget 29 min Locked
  20. 18.20 Drag and Drop: ColorListWidget 10 min Locked
  21. 18.21 Drag and Drop: Drop in Scene 28 min Locked
  22. 18.22 Drag and Drop: Drop on GraphicsItem 13 min Locked
  23. 18.23 Practice Project: Flappy Bird Game, Project Setup 21 min Locked
  24. 18.24 Flappy Bird Game: PillarItem 30 min Locked
  25. 18.25 Flappy Bird Game: BirdItem 23 min Locked
  26. 18.26 Flappy Bird Game: Make Bird Fly Up 15 min Locked
  27. 18.27 Flappy Bird Game: Collision Detection 39 min Locked
  28. 18.28 Practice Project: PainterApp, Project Setup 19 min Locked
  29. 18.29 PainterApp: Pen Strokes 27 min Locked
  30. 18.30 PainterApp: Eraser 22 min Locked
  31. 18.31 PainterApp: Geometric Shapes 25 min Locked
  32. 18.32 PainterApp: Delete Key and Load Image 13 min Locked
  33. 18.33 PainterApp: Rubber Band Selection 22 min Locked
  34. 18.34 GraphicsView Framework: Chapter Review 6 min Locked
Chapter 19 Miscellaneous - Tuning PainterApp Like a Real App 20 lessons
  1. 19.1 Chapter Overview 8 min Locked
  2. 19.2 User Interface Clean Up: Project Setup 13 min Locked
  3. 19.3 Pen Properties: Pen Color 21 min Locked
  4. 19.4 Pen Properties: Pen Style and Width 13 min Locked
  5. 19.5 Pen Properties: Color Picker 20 min Locked
  6. 19.6 User Interface Clean Up: Brush Properties 29 min Locked
  7. 19.7 User Interface Clean Up: Canvas Properties 17 min Locked
  8. 19.8 Tool Cursors 29 min Locked
  9. 19.9 Copy, Cut Paste: Overview 15 min Locked
  10. 19.10 Copy, Cut Paste: Overriding Read(>>) and Write(<<) 24 min Locked
  11. 19.11 Copy, Cut Paste: Building the StrokeItem Class 21 min Locked
  12. 19.12 Copy, Cut Paste: Datastream Read and Write Methods 16 min Locked
  13. 19.13 Copy, Cut Paste: Finalizing the Feature 17 min Locked
  14. 19.14 Copy, Cut Paste: Fix StrokeItem Position 3 min Locked
  15. 19.15 Saving and Loading Documents 23 min Locked
  16. 19.16 Undo Redo: Overview 7 min Locked
  17. 19.17 Undo Redo: AddCommand 19 min Locked
  18. 19.18 Undo Redo: RemoveCommand 6 min Locked
  19. 19.19 Undo Redo: MoveCommand 19 min Locked
  20. 19.20 Fix Smoothness 12 min Locked
Chapter 20 Internationalization 8 lessons
  1. 20.1 Internationalization Overview 11 min Locked
  2. 20.2 Project Setup, Prepare Strings 12 min Locked
  3. 20.3 Generating TS Files 9 min Locked
  4. 20.4 Translating in Qt Linguist 19 min Locked
  5. 20.5 Creating QM Files 6 min Locked
  6. 20.6 Using QTranslator 17 min Locked
  7. 20.7 Loading Official Qt Translations 9 min Locked
  8. 20.8 Saving User Translation Choice 39 min Locked
Chapter 21 Deployment 6 lessons
  1. 21.1 Deployment Overview 11 min Locked
  2. 21.2 Deployment on Windows: Manual Dependency Loading 9 min Locked
  3. 21.3 Deployment on Windows: windeployqt 6 min Locked
  4. 21.4 Deployment on Windows: Qt Installer Framework 18 min Locked
  5. 21.5 Deployment on Linux: linuxdeployqt 13 min Locked
  6. 21.6 Deployment on Mac OS 5 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 Guess My Number game, a Calory Counter, a JSON HTTP client, a Water Level Monitor widget, and a multi-language app with runtime language switching.

After This Course, You’ll Be Able To:

  • Build cross-platform desktop apps with C++ and Qt 6
  • Create professional UIs with custom widgets and your own drawing code
  • Handle databases, file I/O, and network communication
  • Deploy applications with proper installers on Windows, Linux, and Mac
  • Add GUI development to your C++ skill set
  • Confidently apply for Qt developer positions

Created By Someone Who Understands The Struggle

“When I first learned Qt development, I had to scrape together tutorials, documentation, and forum posts. It was messy, overwhelming, and frustrating. I wished for a single resource that explained everything clearly.”

After 10+ years of professional Qt development and teaching thousands of students worldwide, Daniel Gakwaya has created the course he wished he had starting out:

  • A clear path from beginner to professional
  • Hands-on projects that grow with your skills
  • Guidance that cuts through scattered docs and tutorials

This course is written for anyone who wants to master modern cross-platform desktop development with Qt. Beginners with no prior Qt or C++ experience will find a clear path into the framework. Web developers who want to deliver native desktop performance will discover a more efficient workflow. Mobile developers will learn how to create professional desktop applications. And students or researchers will gain practical experience that goes far beyond theoretical knowledge.

What you’ll get:

  • 60+ hours of step-by-step video across 23 chapters and 224+ lessons
  • Complete C++ source code for every project
  • Downloadable PDFs, code templates, and project files
  • Qt 6 and Qt Creator setup walkthroughs for Windows and Linux
  • Lifetime updates as Qt evolves
  • Discord community access with 4,000+ Qt developers
  • Certificate of completion

Your complete learning journey: by the time you finish, you won’t just understand Qt Widgets. You’ll have built production-quality applications, learned to navigate Qt’s documentation, 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 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 C++ 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, and it includes a C++ crash course to get you up to speed. 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.