1、注册自定义类型与 QMetaType 类
①、QMetaType 类用于管理元对象系统中命名的类型,该类用于帮助 QVariant 中的类型以及队列中信号和槽的连接。它将类型名称与类型关联,以便在运行时动态创建和销毁该名称。
②、QMetaType::Type 枚举类型定义了 QMetaType 支持的类型。其原型为
enum Type{void, Bool,Int……UnknowType} //全部类型详见帮助文档。
③、对于 QVariant 类和属性中使用的自定义类型,都需要进行注册,然后才能使用。使用宏 Q_DECLARE_METATYPE()声明新类型,使它们可供 QVariant和其他基于模板的函数使用。调用 qRegisterMetaType()将类型提供给非模板函数。
④、使用 Q_DECLARE_METATYPE( Type )宏声明类型
使用该宏声明类型之后,会使所有基于模板的函数都知道该类型。
使用该宏的类需要具有 public 默认构造函数、public 析构函数和 public 复制构造函数。
使用该宏时,被声明的类型 Type 需要是完全定义的类型,因此,该宏通常位于类或结构的声明之后。
对于指针类型,需要使用 Q_DECLARE_OPAQUE_POINTER(T)宏进行声明。
对于 QVariant类,只需使用该宏声明类型之后便可使用该类型了。
若需要在队列中的信号和槽连接中&#