In-Depth QML


This 3-day course approaches common issues inherent to Qt/QML development. We cover a wide-range of advanced topics such as keyboard focus, gestures, virtual keyboard, unit-testing, profiling, rendering; and provide helpful design patterns and debugging tips. The target audience is the intermediate QML developer.

Course Availability: On-site, Open Enrollment
Subject:  Qt
Duration: 3 days

Course Prerequisites

  • Basic knowledge of programming with Qt on the desktop using widgets
  • Basic QML experience


    Day 1

    User Input

    • Keyboard Navigation and Focus
    • Input Focus
      • Focus Order
      • Focus property
      • Active Focus
      • FocusScope
    • Virtual Keyboard
    • Handling Keyboard Input
      • Key-Specific Handlers
      • All Keys Handler
      • Key Event Propagation
      • Event Propagation is Convenient
    • Multi-Touch
      • Common Multi-Touch Gestures
      • Handling Overlapping Touch Areas

    Dynamic Creation of Items

    • Creating Items Dynamically
      • Procedural Method
      • Declarative Method
    • Procedural Creation
    • Procedural/Declarative Creation
    • Declarative Creation
    • Creating Multiple Items
    • Repeaters

    Debugging and Profiling QML Applications

    • The Scene Graph
    • QML Profiler

    Day 2

    Review and Solution of Lab 1
    • Model/View Concepts
    • Showing Simple Data
    • Custom Models
    • Proxy Models
    • Delegates
    • Tree Models
    Multithreaded Programming
    • Qt Multithreading
    • Thread Synchronization and Primitives
    • QtConcurrent
    C++/QML Layer
    • Layered Design
    • Exporting QPainter based GUI Classes
    • Exporting Scene Graph GUI classes
    • Defining Custom Property Types
    • Qt Serial Bus C++ Classes

    Day 3

    • QTest Framework in QML
      • Overview
      • Adding a Test Suite
      • Implementing a Test
      • Add a Testing Main()
      • Running the Test
      • Simulating GUI Events
      • Mocking C++ Classes with QML
      • SignalSpy
    • Design for Testability
    • Notes on Google Test Framework and Qt

    Additional Topics
    • Animations
    • QML Charts
    • QML Canvas
    • Particles
    • OpenGL and QML
    • Intro to Qt 3D
    Download Course Description