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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSettings сохраняет через раз.  (Прочитано 6952 раз)
altVis
Гость
« : Февраль 06, 2008, 00:41 »

Вечер добрый.
Столкнулся со следующей проблемой.
Есть функция, которая выолняется после нажатия кнопки.
В ней создаётся локальный QSettings, но сохраняет настройки почему-то только после двойного нажатия кнопки.
Функция вызывается всегда, проверял с qDebug.
qsettings естественно, как локальная переменная удаляется после завершения функции.

Может, кто сталкивался с подобной проблемой?
Спасибо. Улыбающийся
Записан
ритт
Гость
« Ответ #1 : Февраль 06, 2008, 02:56 »

версия кутэ и код?
Записан
altVis
Гость
« Ответ #2 : Февраль 06, 2008, 13:24 »

qt 4.3.3

код например:
void saveF()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, "a", "b");
settings.setValue("mainwindow/saveSizPos", size);
}

Эта функция вызывается в: void on_okButton_clicked()
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Февраль 06, 2008, 15:04 »

Никогда таких проблем не замечал, покрайней мере с версии 4.2.3. Сейчас юзаю 4.3.3. Тоже проблем нет.
Не поленился проверил ваш код. Все замечательно работает. Записало с первого раза.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
altVis
Гость
« Ответ #4 : Февраль 06, 2008, 17:03 »

Ещё хотел бы узнать, что лучше с точки зрения производительности.
Есть окно настройки, в котром будет довольно большое количество виджетов.
Лучше будет сохранять всегда текущее состояние всех виджетов(я как понял, если значение не изменилось, то QSettings  не редактирует файл, но считывает с него) или же только изменивших своё состояние( тогда придётся на каждый создавать условие)?
Что требует больше ресурсов?
Записан
AlekSi
Гость
« Ответ #5 : Февраль 07, 2008, 22:17 »

Не надо говорить о производительности раньше профайлера!

В твоём случае лучше не париться и писать в QSettings всё - избавит от многих проблем.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Февраль 07, 2008, 22:27 »

+1

Я полностью согласен с AlekSi. При большом кол-ве виджетов, проверками ты ничего не выиграешь, имхо
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Dodge
Гость
« Ответ #7 : Февраль 11, 2008, 17:01 »

Я конешно сори)

но QSettings::sync() отменили чтоли? 0_о
Записан
altVis
Гость
« Ответ #8 : Февраль 13, 2008, 20:42 »

sync() пробовал.
проблему уже давно решил Подмигивающий
Записан
Dodge
Гость
« Ответ #9 : Февраль 13, 2008, 21:31 »

sync() пробовал.
проблему уже давно решил Подмигивающий
Тк нада поделится решением проблемы, чтоб больше подобных вопросов не возникало  Смеющийся
Записан
altVis
Гость
« Ответ #10 : Февраль 15, 2008, 13:43 »

Использую иногда для просмотра kwrite. Если файл был изменён какой-то программой, то kwrite показывает, что файл был редактирован и предлагает перезагрузить его, тем самым избавляя от закрытия и открытия файла.
Но qsettins видимо не хочет сохранять, пока файл не станет полностью свободен, т.е. пока никакой процесс не будет его использовать.
Вот и обманывался  Веселый
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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