如何使用结构化 QDataStream 和序列化?

Posted

技术标签:

【中文标题】如何使用结构化 QDataStream 和序列化?【英文标题】:How to use structured QDataStream and Serialization? 【发布时间】:2015-07-29 06:02:06 【问题描述】:

我有一个类似 CSS 的数据结构,例如 this 示例:

/* CSS 样式表文件 *.pss */

@include "otherStyleSheet.pss";

/* 评论 */ [propertyID="72100000"] fillColor : #f3f1ed; 最小尺寸:5;线宽:3;

/* 球体 */ [propertyID="2352????"] lineType : dotted;

/* 正方形 */ [propertyID="2115????"] lineType : thinline;

/* ring */ [propertyID="2315????"] lineType : 粗线; [hasInnerRing=true] innerLineType : 细线;

所以我总是有一个根标签 propertyID 及其对应的属性,如 fillColorlineType 等。

让我们假设,这些数据已经在一个 .. 中结构化(属性是子项等):

QStandardItemModel* treeModel = new QStandardItemModel();

    当我在这样的 QStandardItemModel 中有上面的示例时,我如何才能以序列化的方式有效地从文件写入该模型? (请不要使用 JSON,不要使用 XML 推荐)

    假设我只是对文件中间的一个 propertyID 感兴趣,我可以在不解析前面的 propertyID 的情况下访问它吗? 提前致谢!

【问题讨论】:

【参考方案1】:

Here 是一个很好的例子。您的 propertyID 可以构造在一个单独的对象中,例如本例中的 UserRecord..

    你必须去所有前面的“记录”

【讨论】:

以上是关于如何使用结构化 QDataStream 和序列化?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 QDataStream 在 Python 中打开 bin 文件

如何在 PySide 和 Python 3.X 中将字节写入 QDataStream?

如何从 QDataStream 中读取数组

QDataStream 和 QTcpSocket 上的发送和接收结构

使用 QDataStream 序列化自定义类导致 C2679 错误

使用自定义类的 Qlist 作为成员序列化一个类(使用 QDataStream)