windows - Qt:带有 INI 文件和注释的 Windows 上的 QSettings

标签 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 );

注释从文件中删除。 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/

相关文章:

json - 使用 jq 将 JSON 转换为简单的 key=value 文件

C# - Windows 窗体,用于面板控件的溶解动画

c# - 构建具有多个 View 的 C# .NET Windows 应用程序

c++ - 从 Qt Designer 的主窗口打开 QDialog

c++ - Qt 信号和槽混淆

r - 如何用R解析INI之类的配置文件?

.net - 使用默认电子邮件客户端发送文档

java - Windows:使用 CMD(或 Java)从非特权运行特权命令

qt - PostgreSQL 中的快速批处理

apache - 使用 Apache Ant 读取 ini 文件