Qt核心模块的一些特性
Qt核心模块在C++中添加了以下特性:
- 信号和槽机制
- 可查询和可设计的对象属性
- 分层和可查询的对象树,用保护指针以自然的方式组织对象所有权(QPointer)
- 跨库边界工作的动态强制转换
以下页面为Qt的核心特性提供了更多信息
元对象系统(Meta-Object System)
Qt的元对象系统为内部对象通信提供了信号和槽机制,运行时类型信息,动态属性系统
- QObject类为所有可以从元对象系统受益的对象提供了一个基类
- Q_OBJECT宏用于打开元对象系统;
- 元对象编译器(MOC)支持每一个带有必要代码的QObject的子类实现元对象特性
moc工具读取C++源文件,如果发现其中包含Q_OBJECT宏,它会生成一个额外的C++源文件,其中包含元对象代码,这个生成的源文件会被包含进类的源文件里面,或者更一般地,编译并且链接到类的实现。