QtDD12 - In Depth - QMetaType and QMetaObject - Stephen Kelly

3,725 views · Published 11 December 2012 · 57:46 · Indexed 27 September 2026

Channel: Qt Group · 2012 · Education

Watch on YouTube

Recorded at the Qt Developer Days in Berlin in 2012.
Slides available at http://qtconference.kdab.com/node/25

One of the cornerstones of Qt is a system of communication between instances of objects in a many-to-many relationship. The signals and slots system is familiar to all users of the Qt Frameworks, and can be used to indicate when something happens in a UI, or on a network socket or other subsystem. Data can be passed through these connections to create a rich network of objects in an observer pattern.

The Qt system depends on a code generator to create valid connections between objects, but this same code generator also provides other features such as introspection and dynamic instance construction. In parallel, Qt provides a class for storing an instance of any type, the QVariant, and a system of registering user-defined types, the QMetaType system. These features do not depend on any external code generator, but rely on the preprocessor, template specialization, and c++ unions.

The presentation will start with a feature and use-case summary and proceed to discuss implementation details of these Qt cornerstones. The possibilities and enhancements brought by C++11 will also be shown in relation to these features.

More from this channel