Значения обрабатываются в памяти, поэтому изменение файла не изменит объект QSettings, который у вас есть в памяти, и наоборот.
редактирование:
Вызовите sync для обновления в / из файла.
Сохраняет значения, которые вы изменили, и считывает все значения, которые вы не изменили, но были изменены в файле.
Пример
// 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*
Или вот как это должно работать, если я правильно помню
из документов qt (5.10) в QSettings :: sync () - эта функция вызывается автоматически из деструктора QSettings и цикла событий через регулярные промежутки времени, поэтому обычно вам не нужно вызывать ее самостоятельно.
- lumos0815