1

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

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

试过:QDataStream。问题:不是人类可读/可编辑的。

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

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

如果有简单的方法来阻止同步(),那可能就足够了。我们可能可以解决其他任何问题。给我带来最多问题的是“同步”。

4

1 回答 1

0

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

这在 Qt 中是不可能的。

于 2016-04-16T14:17:30.203 回答