Hubbry Logo
search button
Sign in
Meta-object System
Meta-object System
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
Meta-object System
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the Meta-object System Wikipedia article. Here, you can discuss, collect, and organize anything related to Meta-object System. The purpose of the hub is to con...
Add your contribution
Meta-object System

Meta Object System is a part of Qt framework core provided to support Qt extensions to C++ like signals/slots for inter-object communication, run-time type information, and the dynamic property system.[1]

Architecture

[edit]

The Meta object system consists of 3 things: QObject class, Q_OBJECT macro and a tool called moc (Meta-Object Compiler). QObject is the base class for all Qt classes, Q_OBJECT macro is used to enable meta-object features in classes and finally moc is a preprocessor that changes Q_OBJECT macro instances to C++ source code to enable meta object system mechanism in the class in which it is used.[2]

Using the meta object system has brought some criticism. In Qt documentation, several reasons have been given for the use of the meta object system, including benefits of code generation, dynamism of GUIs, automatic binding to scripting languages, not adding limitations and also reasonable performance in signal/slot implementation with moc.[3] There are some efforts to make Qt needless of a preprocessor. These efforts include re-implementing Qt moc using libclang.[4]

References

[edit]
  1. ^ "The Meta-Object System - QtCore 5.1". Qt Project. 2013-07-04. Archived from the original on 2013-08-26. Retrieved 2013-07-04.
  2. ^ "Using the Meta-Object Compiler (moc)". Qt Project. 2013-07-04. Archived from the original on 2013-08-26. Retrieved 2013-07-04.
  3. ^ "Why Does Qt Use Moc for Signals and Slots?". Qt Project. 2013-07-04. Archived from the original on 2013-10-20. Retrieved 2013-07-04.
  4. ^ "Re-implementing Qt moc using libclang". Olivier Goffart. 2013-07-04. Retrieved 2013-07-04.