什么是Qt的元对象系统?
点击查看代码
Qt的元对象系统是Qt框架中一个核心的组成部分,
提供了一种机制来拓展C++的功能,
Qt的元对象系统(Meta-ObiectSystem)
提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统。
元对象系统由以下三个基础组成。
1. QObiect 类是所有使用元对象系统的类的基类。
2. 在一个类的private部分声明QOBJECT宏,使得类可以使用元对象的特性,如动态属性、信号与槽。
3. MOC(元对象编译器)为每个QObject的子类提供必要的代码来实现元对象系统的特性。
元对象编译器
点击查看代码
Qt的元对象编译器(Meta-Object Compiler,MOC)
是一个预处理器,在源程序被编译前,
先将这些Qt 特性的程序转换为标准 C++兼容的形式,然后再由标准 C++编译器进行编译。
这就是为什么在使用信号与槽机制的类里,必须添加一个Q OBJECT 宏的原因,
只有添加了这个宏,moc 才能对类里的信号与槽的代码进行预处理。