需要借助的头文件:
#include <QMetaType>
#include <QVariant>
在一个头文件中声明自定义结构体:
struct CustomStruct{
string name;
string sex;
int years;
.......
.......
}
在结构体的声明后面加一句宏:
Q_DECLARE_METATYPE(CustomStruct)
使用QVariant存储自定义结构体类型(此语句最好放在反射该信号的函数中,对结构体的声明可以放在类的私有修饰符下):
CustomStruct myStruct;
QVariant v;
v.setValue(myStruct);
在使用信号槽所在的类的构造函数中注册QVariant类型,使得在信号槽机制中能接受QVariant类型作为参数:
qRegisterMetaTy