2

我使用 QSettings 使用 Linux 将参数保存到/从 ini 文件中加载:

写:

QSettings settings("setup.ini", QSettings::IniFormat);
settings.beginGroup("Setup_Parameter");
settings.setValue("Parameter1",parameter1_value);
settings.sync();
settings.endGroup();

读:

QSettings settings("setup.ini", QSettings::IniFormat);
settings.beginGroup("Setup_Parameter");
parameter1_value = settings.value("Parameter1","0").toInt();
settings.endGroup();

setup.ini 在系统开启时工作正常。如果我通过关闭电源然后重新打开来重新启动系统,setup.ini 文件有时会完全为空。我会说 5 次尝试中的 3 次。

我已经尝试将文件保存在应用程序和根/设置路径中。以及写入后复制文件,但断电后副本也是空的。

为什么 setup.ini 文件会丢失其内容?重启时需要保留参数。

4

3 回答 3

1

在 write 函数之后需要一个 sync() :

QSettings settings("setup.ini", QSettings::IniFormat);
settings.beginGroup("Setup_Parameter");
settings.setValue("Parameter1",parameter1_value);
settings.endGroup();
settings.sync();
sync();
于 2013-03-17T08:49:36.673 回答
0

我遇到了同样的问题。我的 QSettings 文件有时会在电源重置后消失。该文件仍然存在,但它的大小为零字节。QT 应用程序在 ARM 处理器上的 Debian Squeeze 上运行。文件系统、操作系统和应用程序都位于 4G SD 卡上。

在对设置文件进行任何更改后,我已修改应用程序以调用同步功能。但是我们昨晚进行了电源重置,其中一个单元(我们正在运行大约 60 个)失去了设置。我们正在运行 QTEmbedded-4.8.2,我不知道如何解决这个问题。

于 2013-12-18T18:46:11.823 回答
0

我们已经修复了在 QSettings 的 'sync' 功能之后调用 'sync' linux 命令的相同问题。

于 2014-10-07T10:21:52.703 回答