我使用QSettings写入ini文件并在应用程序启动时加载配置
我的问题是,一旦我通过键加载值,QSettings对象是否将键值保留在内存中
还是从ini文件中读取值?
最佳答案
这些值在内存中处理,因此更改文件不会更改您在内存中拥有的QSettings对象,反之亦然。
编辑:
call 同步以更新到文件或从文件更新。
它会保存您已修改的值,并读取文件中尚未修改但已修改的所有值。
例
// settings.ini contains keys Hello and Hi, which contain both "-"
QSettings settings("settings.ini", QSettings::IniFormat),
// in settings object: *Hello* contains *-* and *Hi* contains *-*
// in settings.ini: *Hello* contains *-* and *Hi* contains *-*
settings.setValue("Hello", "World");
// settings.ini is modified, Hi now contains World
// in settings object: *Hello* contains *World* and *Hi* contains *-*
// in settings.ini: *Hello* contains *-* and *Hi* contains *World*
settings.sync();
// in settings object: *Hello* contains *World* and *Hi* contains *World*
// in settings.ini: *Hello* contains *World* and *Hi* contains *World*
如果我没记错的话,那应该是这样的
超出QSettings::sync()的qt(5.10)文档-此函数是从QSettings的析构函数自动调用的,并由事件循环定期进行调用,因此通常不需要自己调用它。
– lumos0815
关于c++ - Qt QSettings加载后是否将键/值保留在内存中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5561710/