Qt:使用INI文件和注释在Windows上进行QSettings

时间:2009-11-11 01:53:15

标签: windows qt ini

我在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 );

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

抢先评论:

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

1 个答案:

答案 0 :(得分: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

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