Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# TQt Object Model

The standard C++ Object Model provides very efficient runtime support for the object paradigm. But the C++ Object Model's static nature is inflexibile in certain problem domains. Graphical User Interface programming is a domain that requires both runtime efficiency and a high level of flexibility. TQt provides this, by combining the speed of C++ with the flexibility of the TQt Object Model.

TQt adds these features to C++:

- a very powerful mechanism for seamless object communication called signals and slots;
- queryable and designable object properties;
- powerful events and event filters,
- contextual string translation for internationalization;
- sophisticated interval driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI;
- hierarchical and queryable object trees that organize object ownership in a natural way;
- guarded pointers, TQGuardedPtr, that are automatically set to 0 when the referenced object is destroyed, unlike normal C++ pointers which become "dangling pointers" when their objects are destroyed.

Many of these TQt features are implemented with standard C++ techniques, based on inheritance from TQObject. Others, like the object communication mechanism and the dynamic property system, require the Meta Object System provided by TQt's own Meta Object Compiler (moc).

The Meta Object System is a C++ extension that makes the language better suited to true component GUI programming. Although templates can be used to extend C++, the Meta Object System provides benefits using standard C++ that cannot be achieved with templates; see Why doesn't TQt use templates for signals and slots?.