Qt中使用自定义元对象
在Qt的信号槽中使用自定义结构体
Q_DECLARE_TYPE的使用
Q_DECLARE_TYPE用来声明结构体可被Qt的模版类QVarient函数使用
示例
struct MyStruct{
//...
}
Q_DECLARE_TYPE(MyStruct); #注意若是 MyStruct 定义在lvs命名空间中需加空间路径如 Q_DECLARE_TYPE(lvs::MyStruct)
注意 Q_DECLARE_TYPE应该在定义结构体/类的结尾,若结构体定义在 namespace 中则声明位置应在 namespace结束处。
qRegisterMetaType的使用
qRegisterMetaType用于把自定义的结构体/类注册到元对象系统中,可在SIGNAL/SLOT中使用
使用
struct MyStruct{
//...
}
qRegisterMetaType<MyStruct>("MyStruct"); #注意若是 MyStruct 定义在lvs命名空间中需加空间路径如 qRegisterMetaType<MyStruct>("MyStruct")
本文来自博客园,作者:Labant,转载请注明原文链接:https://www.cnblogs.com/lvshen/p/18142910