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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSettings  (Прочитано 5334 раз)
kadr
Гость
« : Январь 21, 2010, 14:05 »

Привет всем, тут возникла необходимость хранить кое какие данные в реестре, для этого я решил использовать QSettings, почитал в справке, там написано, что все просто, достаточно лиши написать так:
QSettings setting;
setting.setValue("key",value);
я так и делаю, но почему то ничего не сохраняется, в чем проблема:
Код:
 QSettings setting;

        bool ok;
        int num_apt;
        num_apt = QInputDialog::getInt(this,tr("Введите номер аптеки"),tr("Номер:"),1,1,999,1,&ok);
        setting.setValue("id_aptiki",num_apt);


        qDebug() << setting.value("id_aptiki","0").toString();

        ui->lab_id_aptiki->setText("Номер аптеки: "+setting.value("id_aptiki","0").toString());
        ui->statusBar->insertWidget(6,ui->lab_id_aptiki);
qDebug() << выводит значение по умолчанию 0;
Записан
niXman
Гость
« Ответ #1 : Январь 21, 2010, 14:40 »

а в файле значение есть?
Записан
kadr
Гость
« Ответ #2 : Январь 21, 2010, 14:54 »

а в файле значение есть?
В каком файле, я вроде не использую файлы!
Записан
p166
Гость
« Ответ #3 : Январь 21, 2010, 14:58 »

Почти правильно, только сделай инициализацию QSettings в таком виде:
    QSettings settings("%company_name%", "%prog_name%");
Записан
MoPDoBoPoT
Гость
« Ответ #4 : Январь 21, 2010, 15:02 »

По-моему это из-за того, что не было указано имя организации и приложения.
Цитата: QtAssistant
If QCoreApplication::setOrganizationName() and QCoreApplication::setApplicationName() has not been previously called, the QSettings object will not be able to read or write any settings, and status() will return AccessError.
Обычно в main.cpp вызывают два метода QCoreApplication::setOrganizationName() и QCoreApplication::setApplicationName(), но можно эти параметры передать и в конструктор:
Код
C++ (Qt)
QSettings settings("OrganizationName", "ApplicationName");
 
Записан
kadr
Гость
« Ответ #5 : Январь 21, 2010, 15:05 »

Почти правильно, только сделай инициализацию QSettings в таком виде:
    QSettings settings("%company_name%", "%prog_name%");

О спасибо, теперь работает!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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