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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не сохраняются настройки QSettings  (Прочитано 4539 раз)
fulkabaster
Гость
« : Май 23, 2009, 09:35 »

В конструкторе главного окна приложения читаю настройки:

QSettings *sets = new QSettings( "A", "B" );
win_size = sets->value("win_size", QSize(1000, 600)).toSize();
...


В деструкторе сохраняю настройки:

QSettings sets2("A", "B");
sets2.setValue("win_size", win_size);
...

(в переменная win_size до этого записался размер окна перед закрытием).

Итог - ниче не сохраняется. Приложение запускается всегда с нуля. Причем и в винде, и в линухе.
Пробовал сохранять не в деструкторе, а в переопределенной функции closeEvent - тот же результат.

Чего я не допонимаю?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Май 23, 2009, 09:55 »

Вот мой код:
Код
C++ (Qt)
/*=====================================================================
Чтение настроек окна
 ===================================================================*/

void MainWindow::readWindowSettings()
{
   QSettings settings;
bool wstate = settings.value("winmax", false).toBool();
   QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
   QSize size = settings.value("size", QSize(400, 400)).toSize();
 
   move(pos);
   resize(size);
   if (wstate)
showMaximized();
}
/*=====================================================================
Сохранение настроек окна
 ===================================================================*/

void MainWindow::writeWindowSettings()
{
   QSettings settings;
   settings.setValue("winmax",isMaximized());
   settings.setValue("pos", pos());
   settings.setValue("size", size());
}
 
в функции main ещё так делаю:
Код
C++ (Qt)
// Устанавливаем свойства программы (понадобится для настроек)
QCoreApplication::setOrganizationName(QObject::tr("ЗАО \"Моя фирма\""));
QCoreApplication::setApplicationName(QObject::tr("Моя программа"));
 
Записываю настройки в MainWindow::closeEvent
Записан

Юра.
ритт
Гость
« Ответ #2 : Май 23, 2009, 15:25 »

sets удаляешь?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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