程序员开发实例大全宝库

网站首页 > 编程文章 正文

QVariant存储结构体和QHash存储指针(Qt编程)

zazugpt 2024-10-14 20:14:10 编程文章 16 ℃ 0 评论

本文介绍两种在Qt中存储自定义数据类型的方法,一种是对结构体的存储,另一种是对自定义类对象的指针存储。

1.用QVariant存储自定义结构体

对于结构体的存储方法,Qt帮助文档中有现成的方法,下面只是做了翻译。

2. 用QHash存储自定义类的指针

这里需要强调的是存储指针,而不是类对象。用QHash可以直接用键值对的方式存储指针,而不需要做Qt元对象声明。如果要存储类对象,还是需要像上面存储结构体那样,使用Q_DECLARE_METATYPE宏来声明类型。

如果要用Hash来存储上面提到的结构体,则直接使用QVariantHash来存储即可。QVariantHash myStructHash; myStructHash.insert("keyName",var);其中var中存储了自定义结构体。获取结构体对象的方法:myStructHash.value("keyName").value<MyStruct>();

3. 适用场景

在编程中往往会涉及到自定义结构体或者类,而且常常需要一个列表把多个结构体或者类管理起来,实际中采用上述描述的用Hash来存储较为方便,而不使用QList<>。QList中只支持保存Qt元对象类型的数据。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表