我使用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/

10-10 12:38