QSettings iniFormat

Posted

技术标签:

【中文标题】QSettings iniFormat【英文标题】: 【发布时间】:2021-01-15 16:47:00 【问题描述】:

我正在尝试从我的应用程序 (Qt5.9.6) 创建一个 ini 文件:

#include <QCoreApplication>
#include <QSettings>

int main(int argc, char* argv[])

    QCoreApplication app(argc, argv);
    QSettings settings(QStringLiteral("C:\\test.ini"), QSettings::IniFormat);
    settings.setValue(QStringLiteral("global/mykey"), 1234);
    settings.sync();
    app.exec();

文件已创建,但内容不是我所期望的:

[global]
mykey="\x1\x1\x1\x1"

【问题讨论】:

您的代码对我来说运行良好。您确定没有在其他地方覆盖该值吗? @chehrlic:是的,我很确定。尽管在代码中的某个时刻,我确实从另一个 .ini 文件读取到另一个 QSettings 实例。我想这应该不是问题。 请提供一个最小的、可编译的示例来显示问题。它在这里工作正常。 @chehrlic:我创建了一个最小的示例,得到了相同的输出。 @chehrlic 我们追踪了这个问题,我的一位同事在我们的自定义 Qt 代码中添加了一个错误。他没有检查相等性,而是使用了赋值运算符,这就是它只打印 \x1 的原因。感谢您的帮助,我真的很感激! 【参考方案1】:

看起来这是一个由同事引入我们自定义构建的 Qt 库的错误。

【讨论】:

以上是关于QSettings iniFormat的主要内容,如果未能解决你的问题,请参考以下文章

QSettings使用方法

为啥 QSettings 不存储任何内容?

Qt 配置文件QSettings

如何在现有的 QSettings 文件中添加组

PySide:QSettings 作为类变量具有不一致的行为

保存应用程序设置(QSettings)