QT 反射机制
reflection 模式(反射模式或反射机制):是指在运行时,能获取任意一个类对象的所有类型
信息、属性、成员函数等信息的一种机制。
- QMetaClassInfo 通过宏Q_CLASSINFO的支持,提供类的附加信息
- QMetaEnum Qt特色的枚举对象,支持key和 value之间的互转
- QMetaMethod 提供类成员函数的元数据
- QMetaProperty 提供类成员属性的元数据
使用反射,需要具备如下条件
- 需要继承自QObject 类,并需要在类之中加入Q_OBJECT 宏。
- 注册成员函数:若希望普通成员函数能够被反射,需要在函数声明之前加入
- QObject::Q_INVOKABLE 宏。
- 注册成员变量:若希望成员变量能被反射,需要使用Q_PROPERTY 宏。