当前位置: 首页 > 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");
http://www.dtcms.com/a/119196.html

相关文章:

  • 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,支持多语言、流式合成、语音的情感、停顿和语调控制
  • (十)安卓开发中的Activity之间的通信使用详解
  • CBGSDataset类-带类别平衡采样的数据集封装器
  • C++-FFmpeg-(5)-1-ffmpeg原理-ffmpeg编码接口-AVFrame-AVPacket-最简单demo
  • 有一个变量 在有些线程没有加锁 有些线程加锁了,那我在这些加锁的线程中能起到对应的作用吗
  • openEuler24.03 LTS下安装Spark
  • 使用 Google ML Kit 实现图片文字识别(提取美国驾照信息)
  • 爬虫抓包工具和PyExeJs模块
  • 领域大模型
  • flink iceberg写数据到hdfs,hive同步读取
  • 【C++游戏引擎开发】数学计算库GLM(线性代数)、CGAL(几何计算)的安装与使用指南