我使用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文件会丢失其内容?它需要在重启时保留参数。
答案 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命令的相同问题。