moc
元对象编译器,moc,是一个用于处理Qt框架中C++扩展的程序。moc工具读入C++头文件。如果头文件中声明的类包含Q_OBJECT宏,编译器将生成一个C++源文件,其中包含相应类的元对象代码。元对象代码对于信号槽机制、运行时类型信息(RTTI)和动态属性系统都是必须的。
moc生成的代码必须与对象类的实现代码一起编译和链接。
使用
信号槽机制
对象属性系统
Q_PROPERTY、Q_ENUM、Q_CLASSINFO
编写用于调用moc的编译规则
moc支持的命令行选项
诊断机制
限制
模板不能使用Q_OBJECT宏
多继承QObject对象必须在第一顺位
函数指针不能用于信号/槽函数的参数(可以绕过)
enums和typedefs必须完全限定
嵌套类不能由信号槽
信号槽的返回值类型不能为引用类型
只有信号/槽函数可以出现在信号和槽的部分
详见:moc