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

StackOverflow https://stackoverflow.com/questions/1712500

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня есть приложение, которое я пишу с использованием 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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top