crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

MishaUA
  опции профиля:
сообщение 12.2.2014, 19:00
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Есть программа, которая уже пол года активно дорабатывается. Основные настройки (размеры окна, автозапуск и т.д.) я храню в ini.
Но есть еще очень много опций которые надо сохранять. Это классы с данными, один класс содержит другой, тот еще десяток иных и так далее. Например:
class GroupSettings
{
public:
    GroupSettings();

    friend QDataStream &operator<<(QDataStream &s, const GroupSettings &o);
    friend QDataStream &operator>>(QDataStream &s, GroupSettings &o);

    QString    name;
    QPoint position;    // положение
    QSize    size;

};
Q_DECLARE_METATYPE(GroupSettings)

GroupSettings::GroupSettings()
{
    qRegisterMetaTypeStreamOperators<GroupSettings>("GroupSettings");

    name.clear();

    position.setX(0);
    position.setY(0);

    size.setHeight(50);
    size.setWidth(50);
}
QDataStream &operator<<(QDataStream &s, const GroupSettings &o) {
    s << o.name << o.position << o.size;
    return s;
}
QDataStream &operator>>(QDataStream &s, GroupSettings &o) {
    s >> o.name >> o.position >> o.size;
    return s;
}
Сохраняю я эти классы в обычном файле. Работает отлично, но...
Когда появляется новая версия программы, структура класса может измениться, из-за чего корректно прочитать класс уже не получится.
Скажите, пожалуйста, как правильно хранить установки в данном случае?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 3)
electronik
  опции профиля:
сообщение 20.2.2014, 15:24
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 16.6.2012
Пользователь №: 3424

Спасибо сказали: 1 раз(а)




Репутация:   0  


Используйте QSettings.

З.Ы.: Вы случаем раньше на Java не писали?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MishaUA
  опции профиля:
сообщение 20.2.2014, 15:41
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


QSettings не подойдет, так как настроек ооооочень много.

На джаве не писал)))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость__v_*
сообщение 20.2.2014, 18:48
Сообщение #4





Гости








    


Попробуйте JSON: http://qt-project.org/doc/qt-5/qjsondocument.html .
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 3.7.2025, 23:02