我有一个在 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 文件以实现 future 的跨平台兼容性
- 我想在文件中存储元信息以供应用程序外部引用
- 我正在考虑将元信息作为 INI 的一部分并使用 name=value 规则,但更愿意将信息保留为注释
最佳答案
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
我不知道它是否有效,试一试,看看它实际上是如何存储字符串的。哦,请确保您从代码中设置它或正确记录它,以避免在程序中意外使用相同的标识符。
关于windows - Qt:带有 INI 文件和注释的 Windows 上的 QSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712500/