首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为QXmlStreamWriter/Reader序列化QColor、QSize、QPoint

如何为QXmlStreamWriter/Reader序列化QColor、QSize、QPoint
EN

Stack Overflow用户
提问于 2013-09-06 20:17:43
回答 2查看 2.3K关注 0票数 0

我正在保存一些项特性,并希望将它们序列化为XML,以便写入文件和/或保存在数据库中。但是,我没有看到任何明显的序列化QColorQSizeQPoint的方法。将QColorQSizeQPoint序列化为QString的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-06 22:43:40

代码语言:javascript
复制
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QDataStream out(&buffer);
out << "your QColor, QSize, or QPoint";

然后,buffer.buffer()返回一个带有序列化QColor、QSize或QPoint的QByteArray。这应该适合写入xml文件。为了安全起见,您应该将QByteArray的内容转换为base64,或者确保它只包含允许的base64字符。

是的,我相信这不是您所希望的,但据我所知,直接序列化到QXmlStreamWriter是不可能的。

票数 0
EN

Stack Overflow用户

发布于 2013-09-06 22:55:20

根本就没有内置的方法。您可以“模仿”那些类型的QDataStream所做的-- 它被记录在案。请记住,QDataStream是二进制格式,而XML不是二进制格式。因此,例如:

  • QColor:序列化颜色规范(作为字符串?),然后组件(根据该规范): 0.024451……
  • QSize:序列化宽度和高度 2421624 或者也许
  • QPoint:序列化X/Y坐标
  • QString:...just写的?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18665944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档