Qt的主要成就之一是使用了一种机制对C++进行了扩展 ,并且使用了这种机制创建了独特的软件组件。这些组件可以绑定在一起但任何一个组件对于它所要连接的组件的情况事先都一无所知。
这种机制称为元对象系统,它提供了关键的两项技术:信号—槽以及内省。内省功能对于实现信号——槽是必需的,并且允许应用程序的开发人员在运行时获得有关QObject子类的“元信息”,包括一个含有对象的类名以及它所支持的信号和槽的列表。
标准C++没有对Qt的元对象系统所需要的动态元信息提供支持。Qt通过提供一个独立的moc工具解决了这个问题,moc解析Q_OBGECT类的定义并且通过C++函数来提供可提供使用的信息。由于Moc使用纯C++来实现它的所有功能,所以Qt的元对象系统可以在任意C++编译器上工作。