在不同的Qt版本中读取QSetting编写的QByteArray设置。

时间:2011-05-13 10:52:56

标签: qt serialization qt4 qsettings qbytearray

如果使用不同版本的Qt库(例如4.5.2对4.7.1),

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

可能的解决方案:

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

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

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

更简单的解决方案?

1 个答案:

答案 0 :(得分:2)

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

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

以及将来参考Qt5版本:

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