使用QTextStream进行反序列化?

时间:2016-04-12 04:52:33

标签: qt serialization deserialization qsettings

需要:从/向人类可读/可编辑文件读取/写入标准Qt类型的结构。

尝试:QSettings。让它运作起来相当容易。问题:QSettings会定期自动调用QSettings :: sync()和dtor。我需要确保仅在请求时更新设置文件,并且仅在请求时修改运行时数据结构。

尝试:QDataStream。问题:不可读/可编辑。

尝试:手动序列化和反序列化,使用标准readline和QString :: toInt()等。我现在必须支持QSettings支持的类型,但是QString没有'toFoo()'方法。这种方式将是更多,更多的编码。

有没有办法在不使用QSettings的情况下序列化和反序列化人类可读的数据?有关它的一切都是违反要求的。应该以不同的方式命名文件。应该以不同的方式控制访问。

如果只是一种阻止sync()的方法,那就足够了。我们可以解决任何其他问题。它的“同步”给了我最多的问题。

1 个答案:

答案 0 :(得分:0)

在查看QSettings的源代码之后,它似乎以独特的方式执行人类可读的序列化 - 反序列化。这个设施似乎不存在于Qt的其他部分。此外,还有许多点会自动更改文件系统。

这在Qt中是不可能的。