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")
posted @ 2024-05-18 18:13  Labant  阅读(74)  评论(0)    收藏  举报