3

如果使用不同版本的 Qt 库(例如 4.5.2 和 4.7.1), QByteArray在文件系统上以不同格式序列化。我在我的应用程序中使用QSettings将一些二进制数据存储在.ini文件中。现在应用程序已迁移到 Qt 4.7.1,如果更新版本的应用程序读取(使用QSettings值方法),则结果QByteArray不等于先前版本的应用程序序列化。

可能的解决方案:

  • 维护应用程序使用的Qt版本(我将应用程序版本存储在设置中)

  • 使用自己的ReadFuncWriteFunc实现自己的QSettings格式(ini 格式的包装器)。

  • 使用维护的 Qt 版本使用setVersion中的QDataStream读取/写入QByteArray设置。

还有更简单的解决方案吗?

4

1 回答 1

2

QDataStream 的 setVersion 是最简单快捷的方式。

http://doc.qt.io/qt-4.8/qdatastream.html#setVersion

并为将来参考 Qt5 版本:

http://doc.qt.io/qt-5.5/qdatastream.html#setVersion

于 2011-06-13T13:06:22.260 回答