Russian Qt Forum

Qt => Общие вопросы => Тема начата: altVis от Февраль 06, 2008, 00:41



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

Может, кто сталкивался с подобной проблемой?
Спасибо. :)


Название: Re: QSettings сохраняет через раз.
Отправлено: ритт от Февраль 06, 2008, 02:56
версия кутэ и код?


Название: Re: QSettings сохраняет через раз.
Отправлено: altVis от Февраль 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()


Название: Re: QSettings сохраняет через раз.
Отправлено: pastor от Февраль 06, 2008, 15:04
Никогда таких проблем не замечал, покрайней мере с версии 4.2.3. Сейчас юзаю 4.3.3. Тоже проблем нет.
Не поленился проверил ваш код. Все замечательно работает. Записало с первого раза.


Название: Re: QSettings сохраняет через раз.
Отправлено: altVis от Февраль 06, 2008, 17:03
Ещё хотел бы узнать, что лучше с точки зрения производительности.
Есть окно настройки, в котром будет довольно большое количество виджетов.
Лучше будет сохранять всегда текущее состояние всех виджетов(я как понял, если значение не изменилось, то QSettings  не редактирует файл, но считывает с него) или же только изменивших своё состояние( тогда придётся на каждый создавать условие)?
Что требует больше ресурсов?


Название: Re: QSettings сохраняет через раз.
Отправлено: AlekSi от Февраль 07, 2008, 22:17
Не надо говорить о производительности раньше профайлера!

В твоём случае лучше не париться и писать в QSettings всё - избавит от многих проблем.


Название: Re: QSettings сохраняет через раз.
Отправлено: pastor от Февраль 07, 2008, 22:27
+1

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


Название: Re: QSettings сохраняет через раз.
Отправлено: Dodge от Февраль 11, 2008, 17:01
Я конешно сори)

но QSettings::sync() отменили чтоли? 0_о


Название: Re: QSettings сохраняет через раз.
Отправлено: altVis от Февраль 13, 2008, 20:42
sync() пробовал.
проблему уже давно решил ;)


Название: Re: QSettings сохраняет через раз.
Отправлено: Dodge от Февраль 13, 2008, 21:31
sync() пробовал.
проблему уже давно решил ;)
Тк нада поделится решением проблемы, чтоб больше подобных вопросов не возникало  ;D


Название: Re: QSettings сохраняет через раз.
Отправлено: altVis от Февраль 15, 2008, 13:43
Использую иногда для просмотра kwrite. Если файл был изменён какой-то программой, то kwrite показывает, что файл был редактирован и предлагает перезагрузить его, тем самым избавляя от закрытия и открытия файла.
Но qsettins видимо не хочет сохранять, пока файл не станет полностью свободен, т.е. пока никакой процесс не будет его использовать.
Вот и обманывался  :D