6

我有一个在 Windows 上使用 Qt 4.5.2 编写的应用程序。我将一些设置存储在 INI 文件中,并使用 QSettings 加载和保存设置。我想在 INI 文件中有一些评论。

例如:

; Meta-info to store with the file
[General]
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true

但是,我在加载设置文件时发现

QSettings settings( "settings.ini", QSettings::IniFormat );

注释从文件中删除。INI 文件在加载后通过调用QSettings::sync()被重写(这由构造函数自动完成)。有没有办法在同步后保留评论?

抢先评论:

  • 我想要 Windows 中的 INI 文件以实现未来的跨平台兼容性
  • 我想将元信息存储在文件中以供应用程序外部参考
  • 我正在考虑将元信息作为 INI 的一部分并使用name=value规则,但更愿意将信息保留为注释
4

1 回答 1

6

QSettings没有“保存”的概念。您对它所做的所有更改都被认为是最终的,并且经常透明地写入磁盘。

在 的文档中QSettings,没有提到 ini 文件中的注释。它确实有些道理:毕竟,它也可以是一个注册表值。把它当作一个生成的文件:它是一个。

这是我的建议:

[General]
Comment = @String(Meta-info to store with the file)
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true

我不知道它是否有效,请尝试使用它来查看它实际上是如何存储字符串的。哦,请确保您从代码中设置它或正确记录它,以避免在程序中意外使用相同的标识符。

于 2009-11-11T04:13:29.137 回答