Qt QML From Beginner to Pro

Master modern UI development with Qt QML and Qt Quick. Create fluid, dynamic, and visually stunning user interfaces for desktop, mobile, and embedded applications. Learn declarative programming and advanced animation techniques.

  • 30h 41m of video

About this course

QML makes it quick to put something fluid on screen. This course shows you how to build the whole application around it. Across 23 chapters, 190+ lessons, and 30+ hours of video, you’ll learn QML and Qt Quick from your first line of syntax all the way to a C++ backend feeding REST data, custom models, and custom-painted types into your interface. You’ll build real applications along the way: a GitHub explorer, a contact manager, animated UIs, and more, all on Qt 6.

  • Start From Zero: no prior QML needed. You begin with syntax, property binding, and basic elements, and you’re running apps from the first chapter
  • Fluid By Design: transforms, states, transitions, and animations like Behavior, SpringAnimation, PathAnimation, and easing curves
  • Real-World Projects: build applications you’d actually want to use, not disconnected demos
  • QML Meets C++: Q_PROPERTY mapping, context objects, instantiable types, singletons, custom models, and custom painted items
  • Complete Integration: connect to REST APIs, SQLite databases, saved settings, and more

What you'll learn

  • QML syntax, data types, property binding, custom components and modules, JavaScript in QML
  • Signals and slots, text, mouse, and keyboard input, FocusScope, anchors, positioners, layouts
  • 20+ Qt Quick Controls, ApplicationWindow, Drawer, SplitView, and file, color, font, and message dialogs
  • ListView, GridView, PathView, TableView, with ListModel, XmlListModel, and dynamic models
  • Transforms, Behavior, SmoothedAnimation, SpringAnimation, PathAnimation, easing curves, states, transitions
  • XMLHttpRequest, REST clients, QML Settings, and SQLite
  • Context properties, Q_PROPERTY mapping, C++ signals, calling JavaScript from C++, instantiable types, singletons
  • Non-visual types with enums, attached and grouped properties, custom C++ list models, painted items like a bar chart
  • QQmlEngine, QQuickView, QQmlApplicationEngine, invoking QML methods, catching QML signals

Projects you'll build

  1. A GitHub Explorer

    A GitHub Explorer

    You will use QML to build a sleek GitHub client on top of the GitHub API, featuring dynamic lists, C++ backend integration, theme switching, smooth animations, and a responsive design. It’s where the REST client, custom models, and C++ integration chapters come together in one application.

  2. A Contact Manager

    A Contact Manager

    A contact manager where QML handles the interface and a custom C++ model handles the data. You’ll build the list, make it editable, and keep the data decoupled from the UI, the way professional Qt teams structure their apps.

Curriculum

23 chapters · 191 lessons · 30h 41m

Chapter 1 Introduction 5 lessons
  1. 1.1 Welcome Free preview
  2. 1.2 Windows Installation Free preview
  3. 1.3 Linux Installation Free preview
  4. 1.4 Running QML Free preview
  5. 1.5 Project Structure Free preview
Chapter 2 QML Syntax 7 lessons
  1. 2.1 Introduction Free preview
  2. 2.2 Syntax Overview Free preview
  3. 2.3 Exploring Data Types Free preview
  4. 2.4 Property Binding Free preview
  5. 2.5 The Qt Global Object Free preview
  6. 2.6 Property Handlers Free preview
  7. 2.7 Summary Free preview
Chapter 3 Basic Elements 5 lessons
  1. 3.1 Introduction 2 min Locked
  2. 3.2 Rectangle, Item and Text 17 min Locked
  3. 3.3 Image 16 min Locked
  4. 3.4 Qt_add_resource 9 min Locked
  5. 3.5 Summary 2 min Locked
Chapter 4 Custom Components and Modules 6 lessons
  1. 4.1 Introduction 3 min Locked
  2. 4.2 Custom Components 18 min Locked
  3. 4.3 Custom Components in Place 16 min Locked
  4. 4.4 QML Modules 19 min Locked
  5. 4.5 QML Modules (legacy) 11 min Locked
  6. 4.6 Summary 4 min Locked
Chapter 5 Signals and Slots 12 lessons
  1. 5.1 Introduction 1 min Locked
  2. 5.2 Signal Handlers 15 min Locked
  3. 5.3 Signal Parameters 8 min Locked
  4. 5.4 Property Change Signals 9 min Locked
  5. 5.5 Connections 7 min Locked
  6. 5.6 Attached Signal Handlers 5 min Locked
  7. 5.7 Custom Signals 7 min Locked
  8. 5.8 Connect a Signal to a Method 6 min Locked
  9. 5.9 Connect a Signal to a Signal 8 min Locked
  10. 5.10 Signals across Components 22 min Locked
  11. 5.11 Multiple Signal Parameters 6 min Locked
  12. 5.12 Summary 4 min Locked
Chapter 6 User Input 9 lessons
  1. 6.1 Introduction 2 min Locked
  2. 6.2 Text Input 12 min Locked
  3. 6.3 Better Text Input 17 min Locked
  4. 6.4 Text Edit 7 min Locked
  5. 6.5 MouseArea 16 min Locked
  6. 6.6 Keys Attached Property 16 min Locked
  7. 6.7 Key Navigation 7 min Locked
  8. 6.8 FocusScope 12 min Locked
  9. 6.9 Summary 2 min Locked
Chapter 7 JavaScript 9 lessons
  1. 7.1 Introduction 1 min Locked
  2. 7.2 JavaScript Usage 9 min Locked
  3. 7.3 Functions and Scope 7 min Locked
  4. 7.4 JavaScript Direct Import 5 min Locked
  5. 7.5 JavaScript Indirect Import 7 min Locked
  6. 7.6 Qt Include 8 min Locked
  7. 7.7 JavaScript Modules 12 min Locked
  8. 7.8 QML Module Utilities 14 min Locked
  9. 7.9 Summary 3 min Locked
Chapter 8 Positioning 8 lessons
  1. 8.1 Introduction 2 min Locked
  2. 8.2 Anchors 23 min Locked
  3. 8.3 Anchor Margin and Offsets 12 min Locked
  4. 8.4 Anchors on Parents and Siblings 5 min Locked
  5. 8.5 Positioning 12 min Locked
  6. 8.6 Layouts 16 min Locked
  7. 8.7 Flow 6 min Locked
  8. 8.8 Summary 2 min Locked
Chapter 9 Qt Quick Controls 22 lessons
  1. 9.1 Introduction 2 min Locked
  2. 9.2 Button 15 min Locked
  3. 9.3 BusyIndicator 10 min Locked
  4. 9.4 CheckBox 7 min Locked
  5. 9.5 ComboBox 25 min Locked
  6. 9.6 DelayButton 8 min Locked
  7. 9.7 Dial 7 min Locked
  8. 9.8 Frame 4 min Locked
  9. 9.9 GroupBox, RadioButton and CheckBox 14 min Locked
  10. 9.10 SwipeView and PageIndicator 10 min Locked
  11. 9.11 ProgressBar 11 min Locked
  12. 9.12 RangeSlider 5 min Locked
  13. 9.13 Flickable and ScrollBar 10 min Locked
  14. 9.14 Slider 4 min Locked
  15. 9.15 Switch 6 min Locked
  16. 9.16 Page and TabBar 8 min Locked
  17. 9.17 TextArea and ScrollView 10 min Locked
  18. 9.18 TextField and Label 8 min Locked
  19. 9.19 SplitView 8 min Locked
  20. 9.20 Drawer 20 min Locked
  21. 9.21 ApplicationWindow 27 min Locked
  22. 9.22 Summary 2 min Locked
Chapter 10 Dialogs 8 lessons
  1. 10.1 Introduction 1 min Locked
  2. 10.2 ColorDialog 8 min Locked
  3. 10.3 FileDialog 7 min Locked
  4. 10.4 FolderDialog 3 min Locked
  5. 10.5 FontDialog 5 min Locked
  6. 10.6 MessageDialog 4 min Locked
  7. 10.7 CustomDialog 14 min Locked
  8. 10.8 Summary 1 min Locked
Chapter 11 Model View Architecture 12 lessons
  1. 11.1 Introduction 5 min Locked
  2. 11.2 ListView and ListModel 16 min Locked
  3. 11.3 Inline Models 7 min Locked
  4. 11.4 Header, Footer and Highlight 9 min Locked
  5. 11.5 Section Decoration 9 min Locked
  6. 11.6 Repeater 11 min Locked
  7. 11.7 Dynamic Models 13 min Locked
  8. 11.8 GridView 6 min Locked
  9. 11.9 XmlListModel 21 min Locked
  10. 11.10 PathView 37 min Locked
  11. 11.11 TableView 27 min Locked
  12. 11.12 Summary 3 min Locked
Chapter 12 Transforms, Transitions and Animations 15 lessons
  1. 12.1 Introduction 2 min Locked
  2. 12.2 Transforms 10 min Locked
  3. 12.3 Animation Introduction 12 min Locked
  4. 12.4 Animation Targets 8 min Locked
  5. 12.5 Behavior 6 min Locked
  6. 12.6 SmoothedAnimation 10 min Locked
  7. 12.7 SpringAnimation 8 min Locked
  8. 12.8 PathAnimation 9 min Locked
  9. 12.9 ColorAnimation 4 min Locked
  10. 12.10 Easing Curves 23 min Locked
  11. 12.11 GroupedAnimations 12 min Locked
  12. 12.12 Pendulum Swing 10 min Locked
  13. 12.13 States and Transitions 22 min Locked
  14. 12.14 States with Gradients 13 min Locked
  15. 12.15 Summary 2 min Locked
Chapter 13 Networking 4 lessons
  1. 13.1 Introduction 2 min Locked
  2. 13.2 XmlHttpRequest 20 min Locked
  3. 13.3 REST Api 15 min Locked
  4. 13.4 Summary 1 min Locked
Chapter 14 Storage 6 lessons
  1. 14.1 Introduction 2 min Locked
  2. 14.2 Settings (Automatic) 13 min Locked
  3. 14.3 Settings (Custom) 12 min Locked
  4. 14.4 Save the States 10 min Locked
  5. 14.5 SQLite 21 min Locked
  6. 14.6 Summary 2 min Locked
Chapter 15 Interfacing C++ to QML 11 lessons
  1. 15.1 Introduction 2 min Locked
  2. 15.2 Context Properties 24 min Locked
  3. 15.3 Connections 9 min Locked
  4. 15.4 Signals from the C++ Side 13 min Locked
  5. 15.5 QPROPERTY Mapping 16 min Locked
  6. 15.6 Context Objects 9 min Locked
  7. 15.7 Calling JavaScript from C++ 15 min Locked
  8. 15.8 Instantiable Objects 15 min Locked
  9. 15.9 Instantiable Module 8 min Locked
  10. 15.10 Singleton Object 9 min Locked
  11. 15.11 Summary 5 min Locked
Chapter 16 Data Conversions Between C++ and QML 6 lessons
  1. 16.1 Introduction 2 min Locked
  2. 16.2 Basic Data Types 21 min Locked
  3. 16.3 Time and DateTime 13 min Locked
  4. 16.4 Sequence Types to JavaScript Arrays 10 min Locked
  5. 16.5 VariantList and VariantMap 14 min Locked
  6. 16.6 Summary 2 min Locked
Chapter 17 REST Integration 5 lessons
  1. 17.1 Introduction 1 min Locked
  2. 17.2 REST Client V1 19 min Locked
  3. 17.3 REST Factory 14 min Locked
  4. 17.4 Fetching Posts 6 min Locked
  5. 17.5 Summary 3 min Locked
Chapter 18 Non Visual Types 11 lessons
  1. 18.1 Introduction 3 min Locked
  2. 18.2 Custom Counter Type 14 min Locked
  3. 18.3 Enums 12 min Locked
  4. 18.4 Counter Enum Version 9 min Locked
  5. 18.5 Object and List Properties 21 min Locked
  6. 18.6 Inherited Types 6 min Locked
  7. 18.7 Default Properties 6 min Locked
  8. 18.8 Grouped Properties 11 min Locked
  9. 18.9 Attached Properties 13 min Locked
  10. 18.10 Property Value Sources 11 min Locked
  11. 18.11 Summary 4 min Locked
Chapter 19 Custom Models 11 lessons
  1. 19.1 Introduction 3 min Locked
  2. 19.2 StringList Model 7 min Locked
  3. 19.3 Object List Model 12 min Locked
  4. 19.4 Editable Object List Model 14 min Locked
  5. 19.5 QProperty Edits 9 min Locked
  6. 19.6 Abstract List Model Concepts 14 min Locked
  7. 19.7 Non Editable Abstract List Model 22 min Locked
  8. 19.8 Editable Abstract List Model 22 min Locked
  9. 19.9 Decoupling the Data from the Source 12 min Locked
  10. 19.10 Model List Properties 9 min Locked
  11. 19.11 Summary 5 min Locked
Chapter 20 REST Client V2 1 lesson
  1. 20.1 REST Client V2 18 min Locked
Chapter 21 Custom Visual Types 6 lessons
  1. 21.1 Introduction 1 min Locked
  2. 21.2 Painting QML Items 27 min Locked
  3. 21.3 Bar Chart 14 min Locked
  4. 21.4 Bar Chart List Properties 9 min Locked
  5. 21.5 Visual Components with the Canvas Element 10 min Locked
  6. 21.6 Summary 3 min Locked
Chapter 22 Singletons 4 lessons
  1. 22.1 Introduction 1 min Locked
  2. 22.2 QJsValue 12 min Locked
  3. 22.3 QObject 14 min Locked
  4. 22.4 Summary 2 min Locked
Chapter 23 Digging QML 8 lessons
  1. 23.1 Introduction 2 min Locked
  2. 23.2 Using QQmlEngine to Load QML 25 min Locked
  3. 23.3 Parsing a Custom QML Type 10 min Locked
  4. 23.4 Visual Types Through QQuickView 10 min Locked
  5. 23.5 QQmlApplicationEngine 8 min Locked
  6. 23.6 Invoking QML Methods 5 min Locked
  7. 23.7 Catching QML Signals 8 min Locked
  8. 23.8 Summary 6 min Locked

More about this course

Some More Projects

Alongside the main projects, you’ll build smaller focused ones that each teach one thing well. You’ll also create a todo list application, a REST client (built twice, the second time with a production-ready architecture), a custom bar chart painted from C++, and more.

A showcase of the core visual building blocks every QML interface is made of, including rectangles, images, text, and positioning:

Qt Quick Controls in action, from buttons and combo boxes to sliders, tab bars, drawers, and a full ApplicationWindow:

Animations that bring your interfaces to life, with transforms, states, transitions, easing curves, and grouped animations:

What You’ll Master

  • QML Foundations: syntax, data types, property binding, custom components and modules, and JavaScript in QML
  • Interaction and Layout: signals and slots, text, mouse, and keyboard input, FocusScope and key navigation, anchors, positioners, and layouts
  • Controls and Dialogs: 20+ Qt Quick Controls, ApplicationWindow, Drawer, and SplitView, plus file, color, font, and message dialogs
  • Data and Views: ListView, GridView, PathView, and TableView, with ListModel, XmlListModel, and dynamic models
  • Animation: transforms, Behavior, SmoothedAnimation, SpringAnimation, PathAnimation, easing curves, states, and transitions
  • Networking and Storage: XMLHttpRequest, REST clients, QML Settings, and SQLite
  • QML and C++: context properties, Q_PROPERTY mapping, signals from C++, calling JavaScript from C++, instantiable types, singletons, and data conversions
  • Custom Types and Models: non-visual types with enums, attached and grouped properties, custom C++ list models, and painted visual items including a bar chart
  • QML Engine Internals: QQmlEngine, QQuickView, QQmlApplicationEngine, invoking QML methods, and catching QML signals

After This Course, You’ll Be Able To:

  • Create modern, fluid user interfaces with QML and Qt Quick
  • Build animations and transitions that make apps feel alive
  • Integrate QML frontends with C++ backends
  • Build custom C++ models and custom visual types for QML
  • Connect your apps to REST APIs and SQLite databases
  • Create interfaces that run on desktop, mobile, and embedded devices

Created By Someone Who Understands The Struggle

“QML can seem overwhelming at first. The declarative approach is different, and the documentation can be scattered. I’ve spent years mastering QML for production applications, and I want to share that knowledge.”

This course distills years of professional QML development into a clear learning path:

  • From basic syntax to advanced patterns
  • Real-world problem solving techniques
  • Performance optimization strategies

Perfect for developers who want to create modern, engaging user interfaces. Whether you’re building mobile apps, desktop applications, or embedded interfaces, QML gives you the tools to create something truly special.

What you’ll get:

  • 30+ hours of step-by-step video across 23 chapters and 190+ lessons, with Multithreading and Deployment chapters coming as free updates
  • Complete source code for every project
  • Downloadable PDFs and course resources
  • Qt 6 and Qt Creator setup walkthroughs for Windows and Linux
  • Lifetime updates as Qt evolves
  • Discord community access with 4,000+ Qt developers
  • Professional certificate

Your complete learning journey: by the time you finish, you won’t just know QML syntax. You’ll have built complete applications, connected them to real C++ backends and web APIs, and developed the confidence to design and structure your own projects from scratch. From smooth animations to data-driven interfaces, you’ll have the skills to make your applications feel professional.

🛡️ 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 QML applications? 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 starts from QML basics. The later chapters connect QML to C++, so some C++ familiarity helps there. If you already have programming experience, you’ll be able to progress faster.

Which version of Qt does the course use?

Qt 6. Setup is covered for Windows and Linux and Mac

Is this course about QML or Qt Widgets?

QML and Qt Quick. If you’re interested in Qt Widgets, take a look at our Qt Widgets with C++ course.

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.