Qt: QSettings в Windows с INI-файлами и комментариями

у меня есть приложение, которое я пишу с помощью Qt 4.5.2 в Windows. Я сохраняю некоторые настройки в INI-файле и использую QSettings для загрузки и сохранения настроек. Я хотел бы иметь некоторые комментарии в INI-файле.

например:

; Meta-info to store with the file
[General]
MainWindowsize=@Size(1280 600)
MainWindowpos=@Point(0 300)
Debugging=true

тем не менее, я нашел, когда я загружаю файл настроек с

QSettings settings( "settings.ini", QSettings::IniFormat );

комментарии удаляются из файла. INI-файл перезаписывается после загрузки с помощью вызова QSettings:: sync () (это выполняется автоматически конструктором). Есть ли способ сохранить комментарии после синхронизации?

упреждающий комментарии:

  • я хочу INI-файлы в Windows для будущей кросс-платформенной совместимости
  • я хочу сохранить мета-информацию в файле для справки за пределами приложения
  • я рассматриваю возможность сделать мета-информацию разделом INI и использовать name=value правила, но предпочел бы сохранить информацию комментарий

1 ответов


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

Я не знаю, работает ли он, поиграйте с ним, чтобы увидеть, как это на самом деле сохраняет строку. О, и убедитесь, что вы либо установили его из кода, либо задокументировали его правильно, чтобы случайно не использовать тот же идентификатор из программы.