Training day


Take the opportunity to expand or update your knowledge around software development with Qt. You can pick from a broad variety of topics suitable for beginners and advanced developers. All training courses are delivered by experienced and highly rated instructors. 

Choose your favorite training course during the booking process in our ticket shop. The training day can only be booked in combination with the Qt DevCon conference days. The ticket shop will open soon.

The following training courses will run one day before Qt Developer Conference, on 13th June 2022


Software Compliance Academy

The Qt Company and froglogic

QML Application Architecture with André Somers

Prerequisite: Some real-world experience working on QML applications as well as a basic understanding of Qt & C++.

Topics include:

A discussion of the architecture of QML applications, where to put the boundaries between what you do in C++ and what you do in QML. We will also look at some of the tools you have available in QML that can help you achieve well-performing, well-structured, and well-maintainable QML applications.

Target audience: QML developers looking to improve their understanding of how to construct maintainable and efficient larger-scale QML applications.

About André Somers

Software engineer at KDAB, André has been using Qt since 2002 when he wrote an open source Qt 2-based flight computer for use in glider planes. Since then, he has applied Qt in a broad range of industries ranging from oil & gas exploration, scientific data manipulation and visualization to medical devices and many more. His main expertise is in C++ and QML. André holds a MSc in Philosophy of Science & Technology.

Custom components and rendering deep-dive with James Turner

Prerequisite: Ideally, some experience with drawing API such as QPainter or GDI (no OpenGL / 3D experience needed);

Topics include:

When and why to create custom components, how to design them, and especially how to get data on-screen efficiently (Whether from video, real-time acquisition, or databases) Portability, performance, and custom event handling (eg, touch input) will also be discussed.

Target audience: Developers looking to improve rendering performance, work with custom data on-screen, or produce novel visual displays in Qt Quick.

About James Turner

Senior software engineer and team lead at KDAB, James has been developing with Qt since 2002. He contributes to the current maintenance of Mac platform support as well as the development of OpenGL and 3D support in Qt. James has a background in UI, graphics, and simulation development as well as a long history of development on OS-X and prior versions of Mac OS. He is a lead developer on FlightGear, the open-source flight simulator, and holds a BSc in Computer Science.

Introduction to CMake with Kevin Funk

Prerequisite: Some experience with build systems in general (but not required)

Topics include:

CMake has broad functionality that covers many real world problems. Learning CMake enables you to solve advanced build requirements. This includes cross-platform builds, feature detection based on platform or available libraries, built- time configurable feature switches, custom build steps, code generators, third-party package retrieval, and usage, making your own library usable for others, etc.

Target audience: Qt/C++ Developers who are interested in how to get the most out of their build system

About Kevin Funk

Kevin has actively developed with Qt/C++ since 2006 and has a special interest in tooling and profiling. He’s been an early contributor to KDAB’s GammaRay analyzer (a high-level Qt application debugger) and thus gained deep knowledge about Qt Core internals. He’s been co-maintainer of the KDevelop IDE, a powerful C/C++ development environment backed by Clang/LLVM, and is pushing for cross-platform success inside KDE. Special interest in large-scale source code refactoring, build tools, CI integration. Kevin holds a Masters Degree in Computer Science.

What’s new in C++20? with Giuseppe D’Angelo

Prerequisite: Solid experience with Modern C++ (11/14/17) is required. Not any particular version, though, since C++20 is largely orthogonal to any of the new features in C++14 and C++17.

Topics include:

Concepts, Comparison (3-way), Coroutines, the char8_t mess, immediate functions, lambda improvements, modules, multi-threading improvements, ranges, span, <bit>, …

Target audience: Qt/C++ developers who wish to familiarize themselves with the current version of the C++ standard, in particular those that wish to write future-proof APIs.

About Giuseppe D’Angelo

Senior Software Engineer at KDAB. Giuseppe is a long-time contributor to Qt, having used Qt and C++ since 2000, and is an Approver in the Qt Project. His contributions in Qt range from containers and regular expressions to GUI, Widgets, and OpenGL. A free software passionate and UNIX specialist, before joining KDAB, he organized conferences on opensource around Italy. He holds a BSc in Computer Science.

Profiling & Debugging for Linux with Milian Wolff

Prerequisite: Solid experience developing with C++ and Qt.

Topics include:

Sampling profiling with Linux perf, measuring memory consumption with heaptrack, and debugging with RR and the sanitizers.

Target audience: Developers writing applications with C++ and Qt, targeting embedded or desktop systems running Linux.

About Milian Wolff

Milian Wolff has a long history of creating tools for C++ developers. He’s the main author of Massif-Visualizer, heaptrack, hotspot and ctf2ctf tools now used widely to improve C++ applications performance. He’s a Senior Software Engineer at KDAB where he enjoys solving hard performance problems and teaching developers about debugging and profiling tools. Milian has a Masters Degree in Physics which explains his scientific approach to performance measurement.

Introduction to QML with Jesper K. Pedersen and Shantanu Tushar

Prerequisite: None

Topics include:

Developing an application in QML and connecting it to C++ back end code.

Target audience: UI developers interested in starting with QML and learning the basics

About Jesper K. Pedersen

Jesper K. Pedersen – COO/HR director at KDAB. Jesper has actively developed with Qt since 1998 and, despite his fancy title, still does so.

He has held almost 100 training classes in Qt since 2000. Today, his greatest claim to fame is the QML youtube series and more recently his youtube series called Qt Widgets and More.

About Shantanu Tushar

Shantanu is a Software Engineer at KDAB and has been developing with Qt/C++ since 2009. Apart from using QML/QtQuick, he has given talks and conducted workshops on QML/Qt Quick for students and professionals alike. With a focus on usability, Shantanu loves using QML/Qt Quick to create elegant and enjoyable user interfaces. When not working on UI, you will find him tinkering with DIY electronics and home automation.

Different approaches to 3D in Qt with Mike Krus and Nuno Pinheiro

Prerequisite: Basic QML is helpful

Topics include:

Integrating 3D content in your applications should be easy right? There are loads of options around, people have been doing it for a while, it is 2021 after all! So why do so many projects get it wrong? Steep learning curve, long setup times, high cost of changes, deplorable runtime performance, …. So many things can go wrong.

In this course, by providing practical examples and live demonstrations, we are going to address two of the main pain points that have historically hampered projects when trying to create smoothly integrated 2d and 3d content. The first issue is related to the actual creation and integration of 3d models. Designers and programmers often have conflicting requirements when it comes to managing the assets and we will see how modern tools can help resolve this issue by enabling smoother sharing of designs. The second issue is related to the integration of the 3d content with the 2d UI and how things like animations and interactions mixing both types of content can be easily be achieved.

We will finally cover some of the common pitfalls that can affect the success of your project when using 3D content.

Target audience: Designers and Developers interested in 3D

About Mike Krus

Senior Software Engineer at KDAB. Mike has been developing with C++ since 1996 and Qt since 2004. He has a broad range of experience in scientific applications, mainly in civil engineering and oil & gas industries. His range of expertise includes C++, QML and interactive 3D visualization software design on desktop and mobile as well as macOS development. Mike is the Qt maintainer for the tvOS platform, one of the core contributors to Qt 3D and is interested in building mobile applications with Qt, mainly on iOS. He has a PhD in Computer Science.

About Nuno Pinheiro

Senior UX/UI designer at KDAB, Nuno did the first QML training for designers and actively uses the QML language for fast UX/UI prototyping and UI solutions deployment. His works include general illustrations, UI design, corporate design, interactive mock-ups, animation examples and much more. Known for his contribution to the award winning Oxygen Project where he is the current coordinator, his computer art is used on KDE computer platforms worldwide. Nuno has an MSc in Civil Engineering.

FOSS Compliance with Dr. Catharina Maracke

Prerequisite: None

Topics include:

  • IP Basics – What is Intellectual Property?
  • FOSS Licensing Model – What Makes Software “Free” and Open?, FOSS Licensing Architecture, and Different Types of FOSS Licenses.
  • Warranties and Liability
  • FOSS License Compliance
  • Reality Check / Examples
  • End-to-end Compliance Management

Target audience: Designed for any employee or contractor with responsibility for developing software or preparing supplied software, including software developers, release engineers, product marketing, or product management. Also relevant for legal department and management.

About the trainer Dr. Catharina Maracke

Dr. Catharina Maracke is an attorney-at-law and the founder of the Software Compliance Academy. She also serves as a project associate professor at Keio University in Japan, where she focuses on IP law and policy, standardisation efforts for public licensing schemes, and the general interaction between law and technology.

Programming for Microcontrollers with Qt for MCUs (STMicroelectronics) with Jakub Wegrzyn


  • Windows 10 64-bit is currently the only operating system for development (Linux is supported, support for macOS is planned, but the training will be held on Windows)
  • Qt for MCUs Evaluation Package 1.X. Please download Qt for MCUs and Qt Creator at, select ‘Try Qt’ on the download page. During the installation process, select ‘Qt for MCUs Evaluation package 1.X’ and ‘Qt Creator 4.12.4.’
  • CMake 3.17 (or higher):
  • MSVC v142 – VS 2019 C++ x64/x86 build tools OR the corresponding 2017 version Windows 10 SDtheK:

Topics include:

During the training session, you’ll learn the basics and get your hands-on programming with Qt for MCUs. The lecturer will introduce you to the Qt Quick Ultralite rendering engine, running on bare metal or FreeRTOS, with Ultralite Controls and an optimized subset of QML. This enables you to create smartphone-like user experiences on microcontrollers with the familiar Qt Creator IDE and other tools.

  • Qt for MCUs package content
  • Building and running an application using the command line
  • Qt for MCUs application build process
  • CMake API
  • Qt for MCUs specific components
  • Configuring Qt Creator IDE
  • Asset management
  • Styling controls
  • Internationalization
  • C++/QML integration
  • About Jakub Wegrzyn

About Jakub Wegrzyn

Jakub Wegrzyn is a technical project leader at siili_auto (Qt Premium Partner) and a C++ enthusiast. 14 years of experience in commercial software development and member of Qt for MCU’s development team.

Qt GUI Automated Testing with Squish with Tomasz Pawłowski

Prerequisite: The course is for developers and testers already familiar with the basic concepts of Qt and Python.

Topics include:

In order to achieve high quality applications during the testing process, all the functionality of the software shall be covered, including fully exercising GUI itself. For regression testing automating this process gives benefits, saving execution time and increasing accuracy. On the other hand, GUI Automation might be a challenge, as GUI may change significantly during a product life cycle. In this course, we learn how to design and implement cross-platform automated tests using Squish GUI Tester for Qt, QML & QtQuick applications that continue to work as your product evolves.

  • Introduction to GUI Testing
  • Squish Overview (installation, configuration)
  • Test Script Creation and Execution
    – Recording and Replaying Test Scripts
    – Verification Points (Properties, Screenshot, Visual, Search Image, OCR Text)
    – Test Results and Logging
    – Squish API
    – Image-Based Lookup
  • Development of Test Cases at Business Level
  • Set-Up and Tear-Down Functions
  • Debugging Test Scripts
  • Object Recognition
  • Accessing Application Internals (Inspecting, Object Properties, and Methods)
  • Synchronisation
  • Squish Command-Line Tools
  • Working with Multiple Applications
  • Hooking into Running Applications
    – Challenges with testing on remote devices
  • Squish Integration with CI

Target audience: Developers and testers interested in designing automated GUI tests for Qt applications.

About Tomasz Pawłowski

Tomasz Pawłowski – Software engineer at froglogic, Tomasz started the adventure with Squish and GUI Testing in 2011, designing and implementing automated tests for a Flight Planning solution at Lufthansa Systems. In 2014 he joined froglogic and is conducting Squish training and consulting for many companies in Europe, India, and the USA. Additionally, Tomasz is implementing Squish integrations. Tomasz has a degree in computer science from Nicolaus Copernicus University in Poland.