Название: можно ли записать QStringList в QSettings одним махом? Отправлено: Гурман от Июнь 29, 2010, 12:17 у меня есть QStringList который может быть разного размера, надо записывать его в файл, создаваемый объектом класса ::QSettings
показалось, что это несложно сделать, есть даже такой метод QList<QVariant> QSettings::value(name).toList() который сразу возвращает список, его уже в QStringList элементарно но как записывать целиком QList<QVariant> чтобы его можно было потом с помощью toList получить - не видно, если попытаться тупо написать QSettings::setValue("list", list ) то в файл записывается Invalid Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: Makss от Июнь 29, 2010, 12:19 Код: QSettings set; так) Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: whirlwind от Июнь 29, 2010, 12:41 как вариант попробовать через QString
Код: QSettings settings ; Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: Гурман от Июнь 29, 2010, 12:55 Код: QSettings set; так) "так" тоже будет сообщение об ошибке в файле настроек key\параметр=@Invalid() при том, что лист точно правильно сформирован как вариант попробовать через QString Код: QSettings settings ; не нравится... должен быть более мягкий способ... Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: crossly от Июнь 29, 2010, 13:01 QStringList пишется без всяких проблем с помощью setValue.....
Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: Гурман от Июнь 29, 2010, 13:09 в классе Settings::QSettings написано
Код: QStringList MRUlist; в конструкторе Settings::Settings Код: setValue("MRUlist", MRUlist ); MRUlist заполняется из менюшки, которая содержит предыдущие открытые файлы Код: settings->MRUlist.clear(); перед вызовом settings->sync(); точка останова, смотрю settings->MRUlist там все правильно, массив строк с именами предыдущих открытых файлов но после синхронизации смотрю в файл настроек, там Код: MRUlist=@Invalid() подумал, может быть нельзя пустой QStringList в начале передавать, написал ему MRUlist << "" в конструкторе в результате в файл записалась одна пустая строка, которая там никак не изменяется, независимо от количества строк в settings->MRUlist перед вызовом sync(), ну и разумеется появляется пустой пункт в MRU при загрузке такого списка после старта приложения при этом все остальные настройки, которые дискретно записываются (цвета, шрифты, разные параметры) - все давно нормально сохраняется что не так с MRUlist, почему не записывается при выполнении sync()? Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: mkv от Июнь 29, 2010, 13:23 даже если там MRUlist=@Invalid(), set.value("параметр").toStringList() должно вернуть пустой StringList...
Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: crossly от Июнь 29, 2010, 13:37 Код: QSettings s("test.ini",QSettings::IniFormat); и вообще не понятна логика работы с QSettings ... в конструкторе вы записываете в настройки пустой список... потом где то его заполняете... а в каком месте вы заполненный список пишите... ? Название: Re: можно ли записать QStringList в QSettings одним махом? Отправлено: Гурман от Июнь 29, 2010, 14:08 а-ха... я не правильно понял логику работы QSettings... теперь все ясно
|