Russian Qt Forum
Ноябрь 24, 2024, 12:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сохранять програмные настройки.  (Прочитано 6693 раз)
Jkc
Гость
« : Март 24, 2005, 11:24 »

Приветствую всех.
Мне нужно что бы после завершения программы сохранялись мои настройки, это CheckBox, загрузка из файла QListView и т.п. Слыхал что нужно делать ini фаил. Кто может помочь примером помогите.
Записан
Hellenna
Гость
« Ответ #1 : Март 24, 2005, 11:42 »

Цитата: "Jkc"
Приветствую всех.
Мне нужно что бы после завершения программы сохранялись мои настройки, это CheckBox, загрузка из файла QListView и т.п. Слыхал что нужно делать ini фаил. Кто может помочь примером помогите.

насчет ini не знаю, в винде давно не программлю, но в QSettings сохранять очень удобно.
Смотри в сторону QSettings::readEntry(...) и QSettings::writeEntry(...).
Небольшой пример:
Код:
//сохранение настроек (например, в деструкторе)
QSettings settings;
settings.WriteEntry("/my_programm/check_box_state", my_check_box->isChecked());

//восстановление (например, в конструкторе)
QSettigns settings;
my_check_box->setChecked(settigns.readBoolEntry("/my_programm/check_box_state", false));
Записан
Jkc
Гость
« Ответ #2 : Март 25, 2005, 12:02 »

Смотри в сторону QSettings::readEntry(...) и QSettings::writeEntry(...).
Небольшой пример:
Код:
//сохранение настроек (например, в деструкторе)
QSettings settings;
settings.WriteEntry("/my_programm/check_box_state", my_check_box->isChecked());
//восстановление (например, в конструкторе)
QSettigns settings;
my_check_box->setChecked(settigns.readBoolEntry("/my_programm/check_box_state", false));
[/quote]

А как быть с QListView?
Как правильно  загрузить записи при старте?
Записан
Hellenna
Гость
« Ответ #3 : Март 25, 2005, 13:51 »

нафантозировала с ходу следующее:

Код:
//сохранение
QString list="";
QListViewItemIterator it( my_list_view );
 while ( it.current() ) {
            QListViewItem *item = it.current();
            list+=item->text(col)+"|"; //сol - номер cтолбца из которого надо текст, при желании можно пребрать все.
            ++it;
 }

QSettings settings;
settings.writeEntry("/my_pog/list_view_items", list);

//восстановление
list=settigns.readEntry("/my_prg/list_view_items", "");
int i=list.contain("|");
for(int j=0; j<i; j++){
     QListViewItem *thisItem=new QListViewItem(my_list_view, list.section("|", i, i));
     my_list_view->insertItem(thisItem);
}


Здесь точно есть недостаток - не восстанавливется вложенность записей. Т.е. все записи восстанавливаются как topLevel. Но это можно  вылечить по анологии.
Записан
Zigmar
Гость
« Ответ #4 : Март 27, 2005, 01:12 »

Цитата: "Jkc"
А как быть с QListView?
Как правильно  загрузить записи при старте?

QListView с иерархией, логичнее всего сериализировать в XML. См. "XML Module".
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 21.