本文主要是介绍Qt元类型(MetaType),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- Q_DECLARE_METATYPE
- qRegisterMetaType
Q_DECLARE_METATYPE
使用Q_DECLARE_METATYPE标记自定义类型,可以让QMetaType查询到类型,也可以让QVariant识别。
#include <QMetaType>
struct MyStruct {QString name;QString color;
};
Q_DECLARE_METATYPE(MyStruct)
MyStruct myStruct;
QVariant variant;
variant.setValue(myStruct); // 不使用Q_DECLARE_METATYPEQ标记的自定义类型会出现编译错误。MyStruct myStruct2 = variant.value<MyStruct>();
qRegisterMetaType
在main函数中使用qRegisterMetaType注册自定义类型到元对象系统中,可在跨线程的信号槽中进行参数传递。
例如:
int main(int argc, char *argv[]) {...qRegisterMetaType<MyStruct>(“MyStruct”);...return 0;
}
这篇关于Qt元类型(MetaType)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!