As with the previous developer days, we will offer a training day before the conference. The trainings will be extracts from KDAB’s regular trainings.

The format for the training day will be similar to KDAB’s regular trainings. This means there will be a mix between lectures and labs. It is therefore recommended that you bring a laptop to the training day.

The trainings have been selected so they should appeal to as broad an audience as possible.

The possible trainings are:


Introduction to Qt Quick

Trainer: Tobias Koenig (KDAB)

This training is an introduction to Qt Quick. On one side it will teach you how you compose fluid user interfaces with slick animations using the QML language. While on the other side it will also teach you how you hook the QML side up to your business logic in C++.

Knowing the basics of Qt on C++ level is an advantage but not a requirement.


Introduction to Testing Qt applications with Squish

Trainer: Tobias Nätterlund (KDAB)

Unit testing will only take you so far when a graphics system is involved. If you want to be sure that the overall system works, then you need to black box test it too. The tool for automating that in the Qt world is Squish.

Squish is a record and playback tool, that can be used as is, but to get the most out of it a more structural approach is suggested. This training will introduce Squish and the refactoring approach that KDAB has successfully implemented in multiple large organizations.

Knowing the basics of Qt and software development is a benefit for this presentation, though both testers and managers who are looking into automatic testing will benefit.


Model/View programming in Qt

Trainer: András Mantia (KDAB)

A key ingredient in successful software development is separation of presentation and business logic. Everyone knows that. A larger part of most applications is list of things, and for those Qt offers such separation using a model/view framework.

This presentation will introduce this framework and tell you how you develop models independent of whether they are to be displayed in a C++/Qt application or in a Qt Quick application.

This training will dive into subjects such as

  • The API to implement for use in a 1 dimensional list, a 2 dimensional table and a tree view.
  • What model indexes are all about
  • How to successfully implement a proxy model
  • How to debug your models
  • How to implement models in C++ that is displayed in Qt Quick.

Introduction to Multithreaded Programming with Qt

Trainer: David Faure (KDAB)

With more and more cores in computers, multithreaded programming is becoming increasingly important for developers. Qt offers several mechanisms for multithreading, however, it is up to you to decide which to use when and steer clear of common pitfalls.

This training will introduce you to multithreading concepts in general, tell you about the different mechanism in Qt, and discuss best practices and common pitfalls.

It is a requirement that you at least know the basis of Qt for this training.


Introduction to Modern OpenGl with Qt

Trainers: Sean Harmer & James Turner (KDAB)

OpenGL is a central part of QtQuick2 in Qt 5 and also plays a key role in displaying the main content of many widget-based applications.

OpenGL has been around for many years and in recent times has evolved to shed much of its legacy baggage and better expose the underlying hardware. Modern OpenGL allows us to take full advantage of the enormous power and parallel processing power of today’s GPUs. Maximizing performance of OpenGL rendering requires us to understand how GPUs work and how to efficiently feed them with data.

Qt provides a number of classes to make life easier when working with modern OpenGL. This training will show you how to do the basic tasks associated with OpenGL rendering and will go on to show how to use Qt and OpenGL to achieve a number of rendering effects and algorithms. You will also learn how to write custom QtQuick2 items using the OpenGL and scene graph APIs.

A basic level of linear algebra will be assumed for this course (multiplying a matrix and a vector). Mathematics will be kept to a bare minimum so as not to get in the way of eye candy!


Whats new in C++11 (with a Qt5 focus)

Trainer: Thomas McGuire (KDAB)

This training is targeted at people who are interested to combine the new features of C++11 with Qt5 (and, to a lesser extent, Qt 4.8). It will teach you all about the new C++11 features, but also throws in Qt-specific information, including how to structure your code so that a simple recompile with a C++11 compiler will make your applications both faster and use less memory.

Knowing the basics of C++ (the old standard) is a requirement, though more advanced topics will be explained as needed. Knowing the basics of Qt is beneficial, but not required.


Introduction to Git – Gerrit and Contributing to Qt

Trainer: Kevin Krammer (KDAB)

The revision control system git has clear advantages over older systems like SVN. On the other hand it has a clear disadvantage, namely that it is much more complicated to use – at first.

A few years ago we added a supplementary topic to our regular Qt training material, namely a section on git. Obviously git has little to do with Qt itself, but the thinking was that we would be happy to help people up to speed with such an important brick to software development.

In this training we will start from scratch and through theory and practice learn all the ins and out of git.

Further, we will discuss Gerrit which is a key piece of infrastructure to know if you plan on contributing to Qt itself.