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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qsettings  (Прочитано 5959 раз)
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.

В чем может быть причина?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июнь 18, 2009, 21:07 »

А зачем ты stg через оператор new создаёшь?

Посмотри, что выводит QSettings::status ()
« Последнее редактирование: Июнь 18, 2009, 21:09 от lit-uriy » Записан

Юра.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Июнь 19, 2009, 06:34 »

А где же delete stg? Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Magvaj
Гость
« Ответ #3 : Июнь 19, 2009, 09:38 »

стоит проверить время последней модификации файла... может он вообще не открывался...

можно строчку с вызовом этой функции?
Записан
pashazz
Гость
« Ответ #4 : Июнь 19, 2009, 14:05 »

Код
C++ (Qt)
QSettings *stg = new QSettings (file, QSettings::IniFormat, this);
Вот так все заработало. Всем спасибо.
Записан
iRQSX
Гость
« Ответ #5 : Май 28, 2011, 16:53 »

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

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Май 28, 2011, 18:14 »

Код
C++ (Qt)
stg = QSettings(main2.conf, QSettings::IniFormat);
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
iRQSX
Гость
« Ответ #7 : Май 28, 2011, 18:18 »

 Смеющийся надо видимо учить срр...
Хотя что то не хочет так
Код
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
« Последнее редактирование: Май 29, 2011, 07:54 от iRQSX » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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