In-Depth

Presenter Presentation Info

Olivier Goffart
Woboq GmbH

Introduction to lock free programming - or how to use QAtomic classes

Lock free programming is the art of programming with threads without using any locks or mutexes to synchronize your data. Instead, one can use atomic operations. Qt has had classes to do atomic operations for a long time: the QAtomicInteger and QAtomicPointer classes. This talk will introduce to the joys and challenges of lock free programming. We will review memory ordering considerations and the C++11 memory model.


Kai Köhne
Digia

Qt Logging Framework

The Qt logging facilities got a major overhaul in Qt 5, and are still getting new extensions in the latest releases. The talk will give an overview of current features. We cover in depth how the new categorized logging works, how to customize and tailor logging output, how to conveniently log your own data types and how to write your own logging backend.

Gabriel de Dietrich
Gabriel de Dietrich
The Qt Company

Deep Dive into Qt Quick and Qt Quick Controls

Qt Quick enables rapid development of fluid UI’s and provides all the elements necessary for creating user interfaces with QML. This presentation will take an in-depth look at the Qt Quick technology focusing on more advanced development including how to combine the flexibility of Qt Quick with the power of C++. While live-coding a small application, we will see how to interface C++ with QML and how to create QML-compatible models, and the usefulness of such abstraction.

Frederik Gladhorn
Frederik Gladhorn
The Qt Company

Accessible Apps

Accessibility support helps you to reach a wider audience with your application. Qt integrates with the native accessibility frameworks on various platforms, since Qt 5.3, including iOS and Android. In this presentation you will learn how blind people use mobile devices and how they experience user interfaces created with Qt.


Volker Krause
KDAB

DIY moc - Dynamic Meta Objects

Moc's job is two-fold: it generates the qt_metacall() member function that dispatches incoming calls to slots and implements reading and writing of properties, and it generates the QMetaObject containing information about what signals, slots and properties are available, providing runtime introspection capabilities. All of this is fixed at compile time though, a limitation that might get into your way when using dynamic languages such as QML.


Thiago Macieira
Intel

String Theory

Qt originally had one string class: QString. In Qt 2, QString became Unicode and another class was added to support legacy 8-bit encoded strings (based on QByteArray). In version 4, Qt got QLatin1String that facilitated creation of Unicode QStrings and in Qt 5 that was extended with QStringLiteral for read-only strings.

Jędrzej Nowacki
Jędrzej Nowacki
The Qt Company

Qt is Spying on Your Types

Qt collects and uses interesting informations about types in your application. Each time you use macros, such as the well known Q_OBJECT, Q_ENUMS, Q_DECLARE_METATYPE or the slightly less popular Q_TYPE_INFO, certain amount of meta-type information is gathered by Qt. The information is used in many places and for different purposes:
- enabling type introspection, which allows scripting environments to use C++ types
- improving performance, especially in container classes
- simplifying debugging by giving more descriptive output
- allowing runtime type conversions