crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> не сохраняются настройки приложения, QSettings
void*
  опции профиля:
сообщение 21.7.2008, 19:31
Сообщение #1


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


собственно сабж. раньше как-то пробовал использовать QSettings, все нормально работало, а вот сейчас почему-то не работает. В классе главного окна объявлено:
private:
           QSettings settings;

Затем в конструкторе инициализируется:
MainWindow::MainWindow() : ..., settings(QSettings::NativeFormat, QSettings::UserScope, QString("ProgStudio"), progname) { //progname - это QString с названием программы
//...
}

Также есть две функции:
void MainWindow::writeSettings() {
     settings.beginGroup("/MainWindow");
     settings.setValue("/pos", this->pos());
     settings.setValue("/size", this->size());
     settings.setValue("/splitter", splitter->saveState());
     //...
     settings.endGroup();
     //...
}
void MainWindow::readSettings() {
     settings.beginGroup("/MainWindow");

     QPoint point = settings.value("/pos", QPoint(0, 0)).toPoint();
     if((point.x() > 0 && point.x() < 1024) && (point.y() > 0 && point.y() < 768)) move(point);

     QSize size = settings.value("/size", QSize(800, 550)).toSize();
     if((size.width() > 0 && size.width() < 1024) && (size.height() > 0 && size.height() < 768)) resize(size);

     splitter->restoreState(settings.value("/splitter").toByteArray());
     //...
     settings.endGroup();
     //...
}

readSettings() используется в конструкторе, а writeSettings() в деструкторе:
MainWindow::~MainWindow() {
                          writeSettings();
}

но все это почему-то не работает :( все время используются значения по умолчанию...
подскажите пожалуйста в чем проблема
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
trdm
  опции профиля:
сообщение 24.7.2008, 10:51
Сообщение #2


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


/// Сохраяняем текущую строку базы данных
void uoStartupDlgImpl::curentDBSettingSave()
{
    QTreeWidgetItem* curItem = treeWidget->currentItem();
    if (curItem == NULL || curItem == dbAdmin || curItem == dbUser)
        return;
    QString curDbName = curItem->text(0);
    QString curDbPath = curItem->text(1);

    _settinds->setValue(iniParam_CurentDBName,curDbName);
    _settinds->setValue(iniParam_CurentDBPath,curDbPath);
}

если в curDbName были ковычки, значение не сохранялось.

Сообщение отредактировал trdm - 24.7.2008, 10:56
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.5.2024, 23:48