Вопрос:QSettings в Windows с INI-файлами и комментариями
Вопрос
У меня есть приложение, которое я пишу с использованием Qt 4.5.2 в Windows.Я сохраняю некоторые настройки в файле INI и использую QSettings для загрузки и сохранения настроек.Я хотел бы иметь некоторые комментарии к INI-файлу.
Например:
; Meta-info to store with the file
[General]
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true
Однако я обнаружил, что когда я загружаю файл настроек с помощью
QSettings settings( "settings.ini", QSettings::IniFormat );
комментарии удаляются из файла.INI-файл перезаписывается после загрузки вызовом QSettings::sync() (это делается автоматически конструктором).Есть ли способ сохранить комментарии после синхронизации?
Превентивные комментарии:
- Мне нужны файлы INI в Windows для будущей кроссплатформенной совместимости.
- Я хочу сохранить метаинформацию в файле для использования вне приложения.
- Я рассматриваю возможность сделать метаинформацию разделом INI и использовать имя=значение правила, но предпочел бы сохранить информацию в виде комментария
Решение
QSettings
не имеет понятия «сохранить».Все изменения, которые вы вносите в него, считаются окончательными и записываются на диск часто и прозрачно.
В документации QSettings
, о комментариях в ini-файлах не упоминается.Это имеет некоторый смысл:в конце концов, это тоже может быть значение реестра.Относитесь к нему как к сгенерированному файлу:это одно.
Вот мое предложение:
[General]
Comment = @String(Meta-info to store with the file)
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true
Я не знаю, работает ли это, поиграйте с ним, чтобы увидеть, как он на самом деле хранит строку.Да, и убедитесь, что вы либо установили его из кода, либо правильно задокументировали, чтобы избежать случайного использования одного и того же идентификатора внутри программы.