Я использую Qsettings для продуктов, не относящихся к графическому интерфейсу, для сохранения своих настроек в файлах xml.Это написано как библиотека, которая используется в программах на C, C ++.Там будет 1 файл XML-файл для каждого продукта.Каждый продукт может иметь более одного субпродукта, и они записываются в XML по группам субпродуктов следующим образом -
Файл: "product1.xml"
<product1>
<subproduct1>
<settings1>..</settings1>
....
<settingsn>..</settingsn>
</subproduct1>
...
<subproductn>
<settings1>..</settings1>
....
<settingsn>..</settingsn>
</subproductn>
</product1>
Файл: productn.xml
<productn>
<subproduct1>
<settings1>..</settings1>
....
<settingsn>..</settingsn>
</subproduct1>
...
<subproductn>
<settings1>..</settings1>
....
<settingsn>..</settingsn>
</subproductn>
</productn>
Код в одном процессе выполняет следующее -
settings = new QSettings("product1.xml", XmlFormat);
settings.setValue("settings1",<value>)
sleep(20);
settings.setValue("settings2", <value2>)
settings.sync();
Когда первый процесс переходит в спящий режим, я запускаю другой процесс, которыйвыполняет следующее -
settings = new QSettings("product1.xml", XmlFormat);
settings.remove("settings1")
settings.setValue("settings3", <value3>)
settings.sync();
Я бы ожидал, что settings1 будет удален из файла product1.xml, но он все еще сохранится в файле - product1.xml в конце двух предыдущих процессов.Я не использую QCoreApplication (..) в моей библиотеке настроек.Пожалуйста, укажите проблемы, если в вышеуказанном дизайне что-то не так.