Как мне работать с «файлами проекта» в моем приложении Qt? - PullRequest
1 голос
/ 10 апреля 2009

Мое приложение Qt должно иметь возможность создавать / открывать / сохранять один «Проект» одновременно. Какой безболезненный способ сохранить настройки проекта в файле? Должен ли это быть XML или что-то менее ужасное?

Конечно, данные, которые будут храниться в файле, могут со временем изменяться.

Мне нужно что-то вроде QSettings, но привязанное к проекту в моем приложении, а не ко всему приложению.

Ответы [ 3 ]

1 голос
/ 10 апреля 2009

Pro XML:

  • Вы можете взглянуть на это в редакторе
  • Вы можете хранить любые строки на любом языке (поддержка юникода)
  • Учиться легко
  • Более одной программы могут читать один и тот же XML
  • Ваши данные легко структурировать с помощью XML. Например, когда вы используете списки ключ / значение, вы сталкиваетесь с проблемами, когда вам необходимо сохранить древовидные структуры.

Contra XML

  • Результат несколько раздутый
  • Большинство языков программирования (особенно старых, таких как C ++) не имеют хорошей поддержки XML. Старые XML API создавались таким образом, чтобы их можно было реализовать на любом языке (наименьший общий знаменатель). 'ничего не сказал.
  • Вам необходимо понять понятие «кодировка» (или «кодировка»). На первый взгляд это может показаться тривиальным, но есть некоторые скрытые проблемы, которые могут вас укусить. Поэтому всегда проверяйте свой код с помощью умлаутов и даже кандзи (японских символов), чтобы убедиться, что вы правильно поняли.
1 голос
/ 10 апреля 2009

Вы можете использовать QSettings для хранения данных в определенном INI-файле. Из документов:

Иногда вы хотите получить доступ к настройкам, хранящимся в определенном файле или пути к реестру. На всех платформах, если вы хотите читать INI-файл напрямую, вы можете использовать конструктор QSettings, который принимает имя файла в качестве первого аргумента и передает QSettings :: IniFormat в качестве второго аргумента. Например: Настройки QSettings ("/ home / petra / misc / myapp.ini", QSettings :: IniFormat);

1 голос
/ 10 апреля 2009

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

Однако это только для настроек, а не для полных данных проекта, которые, как мне кажется, требуют более сложных структур.

Так может быть JSON ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...