Сохранение данных пользователя для моего приложения - PullRequest
0 голосов
/ 30 мая 2011

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

Каков будет правильный и лучший способ сделать это? Нужно ли использовать формат XML? А потом использовать xmlreader для QT? Или мне просто нужно создать свой собственный формат файла и просто использовать поток, чтобы просто прочитать все. Данные в файле должны быть помечены, потому что они должны поместить данные в определенные места на графическом интерфейсе. А у пользователя есть возможность динамически создавать поля и вкладки, которые содержат определенную информацию.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.


Краткий пример:

Я не только читаю графические локации. Но содержание тех. За пример. Пользователь может создавать вкладки, которые содержат текстовые поля редактирования. А также эти вкладки связаны с элементами которые находятся в списке. Когда пользователь нажимает на элемент в списке пользователя будет представлен с целым набором новые вкладки. И каждая вкладка имеет несколько редактирование форм. Файл нужно будет содержать то, что находится в списке, какие вкладки пользователь создал под каждым элементом в этом списке и содержание каждого вкладка, связанная с вкладкой каждого элемент в списке.

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Другим отличным решением является использование внутренней реализации базы данных (QSQL поверх sqlite).По сравнению с решением xml, он может быть более универсальным (обновлять при необходимости, можно использовать внешние ключи).В Qt есть несколько примеров того, как правильно его использовать.

С точки зрения зависимостей, решение XML потребует от вас использования xml и xmlpatterns (если вы хотите проверить вещи), тогда как решение sqlite потребует плагина QSQL + sqlite,Я думаю, что sqlite гарантирует атомарность записи, тем самым предотвращая повреждение данных (подумайте: пользователь убивает приложение во время его сохранения).

2 голосов
/ 30 мая 2011

По сути, да, вы будете создавать свой собственный формат файла, но фактическим содержимым может быть просто XML в любой схеме, которая вам нужна.Затем вы можете использовать встроенные в Qt возможности обработки XML, чтобы перенести тяжелый анализ синтаксического анализа текста (я лично предпочитаю модель DOM, поэтому я использую QDomDocument в качестве своей базовой точки), и вам просто нужно будет позаботиться о синтаксическом анализеи от отдельных узлов.

У платформы Qt есть несколько отличных примеров XML, если я правильно помню, это помогло мне почти сразу же начать работу.Надеюсь, они помогут!

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