#include
1.Q_DECLARE_METATYPE
使用Q_DECLARE_METATYPE标记自定义类型,可以让QMetaType查询到类型,也可以让QVariant识别。
#include
struct MyStruct {
QString name;
QString color;
};
Q_DECLARE_METATYPE(MyStruct)
MyStruct myStruct;
QVariant variant;
variant.setValue(myStruct); // 不使用Q_DECLARE_METATYPEQ标记的自定义类型会出现编译错误。
MyStruct myStruct2 = variant.value();
2.qRegisterMetaType
在main函数中使用qRegisterMetaType注册自定义类型到元对象系统中,可在跨线程的信号槽中进行参数传递。
int main(int argc, char *argv[]) {
…
qRegisterMetaType(“MyStruct”);
…
return 0;
}