当前位置: 首页 > news >正文

自定义数据结构的QVariant序列化 ASSERT failure in QVariant::save: “invalid type to save“

自定义数据结构放入QVariant,在序列化时抛出异常

ASSERT failure in QVariant::save: “invalid type to save”

自定义数据结构如struct MyData,除了要在结构体后面加

struct MyData
{
...
}
Q_DECLARE_METATYPE(MyData)

如果需要用到流的输入输出,如QDataStream operator<< 和operator>>,要重写操作符,如下

QDataStream& operator<<(QDataStream& out, const MyData& data);
QDataStream& operator>>(QDataStream& in, MyData& data);

QDataStream& operator<<(QDataStream& out, const MyData& data) {
	out << ...
	return out;
}
QDataStream& operator>>(QDataStream& in, MyData& data) {
	in >> ...
	return in;
}

此外,还要通过qRegisterMetaTypeStreamOperators注册流操作符,可以放在main函数中

qRegisterMetaTypeStreamOperators<MyData>("MyData");

相关文章:

  • BetaFlight参数配置解读
  • 软考高项-考前冲刺资料-M 类【项目管理类】【光头张老师出品】
  • C++:模拟实现string
  • spring之Bean的循环依赖问题、反射机制手写Spring框架、Spring IoC注解式开发
  • 测试用例设计
  • 对抗Prompt工程:构建AI安全护栏的攻防实践
  • 精密空调的介绍
  • 《解码 C/C++ 关键字:科技编程的核心指令集》
  • 机器学习 Day09 线性回归
  • 在SQLark 中快速生成测试数据
  • ASP.NET图书馆借阅系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 小白入门JVM、字节码、类加载机制图解
  • STL常用容器整理
  • macbook pro查询并修改命令提示符的格式
  • 循环神经网络 - 参数学习之随时间反向传播算法
  • 回溯算法补充leetcode
  • 高级java每日一道面试题-2025年3月25日-微服务篇[Nacos篇]-Nacos中的命名空间(Namespace)有什么作用?
  • 日照港客户服务平台(舟道网 3.0):商贸物流的数字化革新利器
  • 蓝桥杯--特殊日期
  • 2noise团队开源ChatTTS,支持多语言、流式合成、语音的情感、停顿和语调控制
  • 湖南响应式网站建设哪家有/郑州网站制作选择乐云seo
  • 一个网站开发/西地那非
  • 联系人网站设计/seo优化报价
  • wordpress字不能/seo广告
  • 网站导航菜单代码/百度快照网址
  • 初学者做网站的软件/app投放推广