QSettings IniFormat文件在重启后变空

时间:2013-03-15 07:41:19

标签: qt restart ini qsettings

我使用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个。

我已经尝试在应用程序和root / Settings路径中保存文件。 除了在写入文件后复制文件,然后在关闭电源后再打开副本。

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

3 个答案:

答案 0 :(得分:1)

写函数后需要sync():

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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