Qt反射前期准备
[以下内容来自博客# Qt5之反射机制(内省),转载请注意说明出处]
-
首先得继承于Q_Object,同时需要在class中加入Q_OBJECT。
-
注册类成员变量需要使用Q_PROPERTY
Q_PROPERTY( type member READ get WRITE set) 其中READ,WRITE是关键字
Type表示成员的类型(不支持自定义类型,对Qt很多基本类型都支持);
Member代表你给该成员另外起的名字,可以和变量名不同;get,set就是自己在C++函数里面定义的基本的访问函数名,不需要写参数。 -
注册类成员函数
如果你希望这个函数能够被反射,那么很简单,只需要在类的函数声明前加入Q_INVOKABLE关键字。
以下来自个人实践
1. 反射测试类
主要实现了解析某个uchar或者uint的第几位到第几位的数据信息,具体代码如下:
头文件如下,部分成员函数代码实现不规范,写在了头文件中,大家修改以下即可