Название: Как сохранить QList<int> в QSettings? Отправлено: evgeniy от Октябрь 17, 2011, 15:53 целиком, не по элементам.
В частности, возможно ли QList<int> преобразовать в Qvariant или QByteArray? Заранее очень благодарен! Название: Re: Как сохранить QList<int> в QSettings? Отправлено: kibsoft от Октябрь 17, 2011, 16:02 Цитировать QVariant::QVariant ( const QList<QVariant> & val ) int'ы в QVariant хранитьМожет как-нибудь так прокатит (не пробовал): Код: typedef QList<int> MyList; Название: Re: Как сохранить QList<int> в QSettings? Отправлено: Kolobok от Октябрь 17, 2011, 16:03 QVariant QVariant::fromValue ( const T & value ) [static]
Название: B Отправлено: _govorilka от Октябрь 17, 2011, 16:48 Посмотри класс QDataStream. Он сохраняет данные в объект класса QIODevice. Через QBuffer можно создать QIODevice из QByteArray, QByteArray можно сохранить в QSettings.
Для хранения настроек в своём приложении мы используем SQLite, для этого мы написали обёртку над этой библиотекой (http://code.google.com/p/fireworks/). В библиотеке мы начали развивать язык FwML. Это расширение над JSON (www.json.org). Он позволяет записывать массивы чисел в файлы и не только. Возможно, эти наработки будут тебе полезны. Название: Re: Как сохранить QList<int> в QSettings? Отправлено: evgeniy от Октябрь 17, 2011, 17:49 Всем спасибо!
Задача была сохранять пропорции QSplitter. Похоже оптимальное решение только по элементам. сохранение: ... for (int i = 0; i < spl.sizes().size(); ++i) settings->setValue(QString::number(i), spl.sizes().at(i)); ... восстановление: ... QList<int> list; foreach(QString key, settings->childKeys()) list.insert(key.toInt(), settings->value(key).toInt()); spl.setSizes(list); ... Название: Re: Как сохранить QList<int> в QSettings? Отправлено: Пантер от Октябрь 17, 2011, 18:23 А все намного проще... (http://doc.qt.nokia.com/4.7/qsplitter.html#saveState) ;)
Название: Re: Как сохранить QList<int> в QSettings? Отправлено: _govorilka от Октябрь 18, 2011, 10:58 А все намного проще... (http://doc.qt.nokia.com/4.7/qsplitter.html#saveState) ;) +1 А я про них забыл... Хотя эти функции насколько я помню тоже через QDataStream работают. Название: Re: Как сохранить QList<int> в QSettings? Отправлено: kolob от Октябрь 18, 2011, 14:15 С Пантер согласен. А если например ширину столбцов в таблице, я сделал так:
-сохранение Код: QList<QVariant> widthColumns; Код: QList<QVariant> widthColumns = settings.value("/widthColumns").toList(); Название: Re: Как сохранить QList<int> в QSettings? Отправлено: Пантер от Октябрь 18, 2011, 14:22 kolob, а я так :)
Код
Название: Re: Как сохранить QList<int> в QSettings? Отправлено: evgeniy от Октябрь 18, 2011, 15:02 Kolob, Пантер - точно, так правильней.
Но, Пантер, QSplitter::saveState() и прочее не работают. Название: Re: Как сохранить QList<int> в QSettings? Отправлено: Пантер от Октябрь 18, 2011, 15:23 Но, Пантер, QSplitter::saveState() и прочее не работают. Как делаешь?Название: Re: Как сохранить QList<int> в QSettings? Отправлено: evgeniy от Октябрь 18, 2011, 15:51 QSplitter::saveState() заработал!
Я что-то не так делал. Название: Re: Как сохранить QList<int> в QSettings? Отправлено: kolob от Ноябрь 13, 2011, 23:57 Пантер, а разве индекс колонок начинается не с 0 ?!
Такая запись: Цитировать Код: for (int i = 0, count =v->model ()->columnCount (); i < count; ++i) { Так ведь?! Или я не прав. |