2009-11-11 2 views
6

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

Например:

; Meta-info to store with the file 
[General] 
MainWindow\[email protected](1280 600) 
MainWindow\[email protected](0 300) 
Debugging=true 

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

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

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

Преимущественные комментарии:

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

ответ

4

QSettings не имеет понятия «сохранить». Все изменения, которые вы делаете с ним, считаются окончательными и записываются на диск часто и прозрачно.

В документации QSettings не упоминается о комментариях в файлах ini. Это имеет смысл: в конце концов, это тоже значение реестра. Рассматривайте его как сгенерированный файл: он один.

Вот мое предложение:

[General] 
Comment = @String(Meta-info to store with the file) 
MainWindow\[email protected](1280 600) 
MainWindow\[email protected](0 300) 
Debugging=true 

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

+0

Ключевая строка: «Рассматривайте это как сгенерированный файл: он один». Я думаю, что все это говорит. Если я хочу делать файлы с настройками не-Qt с файлом, то это не файл настроек Qt. – dwj

Смежные вопросы