【发布时间】:2013-03-03 20:29:52
【问题描述】:
我使用 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 文件会丢失其内容?重启时需要保留参数。
【问题讨论】:
-
您能明确提出一个问题吗?
-
我需要 setup.ini 来保留其内容。为什么setup.ini有时会在关机再开机后为空?
-
尝试重命名一个文件,也许是什么删除了它?没有其他解释这种情况发生了 5 次中的 3 次。而且不需要settings.sync(),尤其是在settings.endGroup()之前,根据QSettingsdocumentation,可能是这里出错了?
-
我应该重命名什么? setup.ini?我做了同步(),因为我曾经在写入后立即进行备份。但就像我写的那样,这个备份文件(cp setup.ini setup.bak)也变空了。顺便说一句:文件没有被删除,它仍然存在,但为空。
-
好的,首先,将 sync() 移到 endGroup() 之后。我认为它可以提供帮助。我提议重命名只是为了防止外界干扰。