Russian Qt Forum

Qt => Общие вопросы => Тема начата: pashazz от Июнь 18, 2009, 20:50



Название: Qsettings
Отправлено: pashazz от Июнь 18, 2009, 20:50
Есть функция:
Код
C++ (Qt)
void MXCoreMethods::writeSetting(const QString &key , const QString &group, const QVariant &value, const QString &file) {
  QSettings *stg = new QSettings (file);
   stg->beginGroup(group);
   stg->setValue(key, value);
  stg->endGroup();
   stg->sync();
qDebug() << tr ("settings wrote in config file %1: group %2, key %3, value %4").arg(file, group,key, value.toString());
}
 

Настройки почему-то не записываются, хотя
1) имя файла правильное
2) права в порядке.
До этого в этот файл было внесено значение с таким же ключом, вот кусок конфига
Код:
[Options]
ButtonText=true
вывод программы:
Цитировать
"settings wrote in config file /home/pasha/.mosaix/toolbars.ini: group Options, key ButtonText, value false"

А ButtonText все так же true.

В чем может быть причина?


Название: Re: Qsettings
Отправлено: lit-uriy от Июнь 18, 2009, 21:07
А зачем ты stg через оператор new создаёшь?

Посмотри, что выводит QSettings::status ()


Название: Re: Qsettings
Отправлено: Пантер от Июнь 19, 2009, 06:34
А где же delete stg? ;)


Название: Re: Qsettings
Отправлено: Magvaj от Июнь 19, 2009, 09:38
стоит проверить время последней модификации файла... может он вообще не открывался...

можно строчку с вызовом этой функции?


Название: Re: Qsettings
Отправлено: pashazz от Июнь 19, 2009, 14:05
Код
C++ (Qt)
QSettings *stg = new QSettings (file, QSettings::IniFormat, this);
Вот так все заработало. Всем спасибо.


Название: Re: Qsettings
Отправлено: iRQSX от Май 28, 2011, 16:53
извиняюсь что вклиниваюсь!
Как указать в какой файл писать конфиг уже после создания QSettings??
то есть:
Код
C++ (Qt)
QSettings stg(main.conf, QSettings::IniFormat)
...
...
stg.ХОЧУ_ИЗМЕНИТЬ_ФАЙЛ_КУДА_ПИШУТСЯ_НАСТРОЙКИ_НА(main2.conf)
...
...
 


Название: Re: Qsettings
Отправлено: kambala от Май 28, 2011, 18:14
Код
C++ (Qt)
stg = QSettings(main2.conf, QSettings::IniFormat);


Название: Re: Qsettings
Отправлено: iRQSX от Май 28, 2011, 18:18
 ;D надо видимо учить срр...
Хотя что то не хочет так
Код
C++ (Qt)
void configs::setConfigFile(const QString &file){
   settings = QSettings(file, QSettings::IniFormat);
}
 

c:\QtSDK\Desktop\Qt\4.7.3\mingw\include\QtCore\qsettings.h:304: ошибка: 'QSettings& QSettings::operator=(const QSettings&)' is private