1

我正在使用 QSettings 来解析没有组的 ini 格式文件,例如:

msg=45
id=69

到目前为止一切顺利,但是当我尝试编写新密钥时,它是这样的:

[General]
new=100
msg=45
id=69

我的目标是拥有这样的东西:

msg=45
id=69
new=100

这是我编写的代码:

QSettings settings(m_rcFile, QSettings::IniFormat);
settings.setValue("new", num);

我知道大多数 ini 文件都有组/键/值,但是由于 QSetings 可以在没有组的情况下读取它们,但我认为它可以为写入做同样的事情。有任何想法吗?

4

1 回答 1

0

似乎至少与文档一致,其中说

如果您保存顶级设置(其中没有斜线的键,例如“someKey”),它将出现在 INI 文件的“常规”部分中。

就在它下面说

遵循我们应该在我们接受的东西上自由和在我们生成的东西上保守的理念,QSettings 将 [...]

这虽然解决了一个不同的怪癖,但可以解释为什么 QSettings 可以从非部分读取值,但拒绝在那里写入。

底线是,如果您真的不能将它们放在一个部分中,您需要一种不同的方法(另一个库或像 QFile/QTextStream 这样的低级类)来写入这些值。

于 2016-09-24T16:00:16.263 回答