Russian Qt Forum

Qt => Общие вопросы => Тема начата: faithman от Март 05, 2009, 18:38



Название: проблема с записью QVariant через QSettings
Отправлено: faithman от Март 05, 2009, 18:38
ПО : Qt 4.4.3, QDevelop 0.26, MinGW + Vista 64

Вот кусок кода функции:

Код
C++ (Qt)
//Запись коэффициентов по размерам виджетов
void QFiler::saveSizePanels(int config)
{
int koef;QList<int> list;
switch (config)
{
case 1:
koef=(panel->width()*100)/(splitter->width()-splitter->handleWidth());
list.append(koef);
koef=(panel_2->width()*100)/(splitter->width()-splitter->handleWidth());
list.append(koef);
koef=(panel_3->width()*100)/(splitter_2->width()-splitter->handleWidth());
list.append(koef);
koef=(panel_4->width()*100)/(splitter_2->width()-splitter->handleWidth());
list.append(koef);
koef=(splitter_2->width()*100)/(shareSplitter->width()-(3*splitter->handleWidth()));
list.append(koef);
koef=(splitter->width()*100)/(shareSplitter->width()-(3*splitter->handleWidth()));
list.append(koef);
settings->setValue("four_vert",&list);
break;
}
}
Вот эта штука "settings->setValue("four_vert",&list);" записывает в мой файл "four_vert=true" ,а по идее шесть целочисленных значений,примерно так:
"four_vert=50 50 50 50 50 50".


Пробовал даже так:
Код
C++ (Qt)
settings->beginGroup("panels");
QList<int> list;
list.append(50);list.append(50);list.append(50);list.append(50);list.append(50);list.append(50);
settings->setValue("four_vert",&list);
settings->endGroup;

Всё равно  "four_vert=true" .
Что не так делаю ?


Название: Re: проблема с записью QVariant через QSettings
Отправлено: BRE от Март 05, 2009, 18:43
settings->setValue("four_vert",&list);

Код
C++ (Qt)
settings->setValue("four_vert", list);


Название: Re: проблема с записью QVariant через QSettings
Отправлено: Rcus от Март 05, 2009, 18:46
Ну вот так именно не получится :) QList<int> не преобразуется в QVariant, но есть QVariantList


Название: Re: проблема с записью QVariant через QSettings
Отправлено: BRE от Март 05, 2009, 18:52
Просмотрел, залез исправлять.  ;)
Конечно, нужно QList<QVariant> или QVariantList.


Название: Re: проблема с записью QVariant через QSettings
Отправлено: faithman от Март 05, 2009, 18:58
Ну вот так именно не получится :) QList<int> не преобразуется в QVariant, но есть QVariantList

в библиотеке такого нет класса QVariantList

Ткните носом пожалуйста !


Название: Re: проблема с записью QVariant через QSettings
Отправлено: Rcus от Март 05, 2009, 19:00
Assistant -> QVariant
Цитировать
Related Non-Members
typedef QVariantList
Synonym for QList<QVariant>.


Название: Re: проблема с записью QVariant через QSettings
Отправлено: faithman от Март 05, 2009, 19:13
Assistant -> QVariant
Цитировать
Related Non-Members
typedef QVariantList
Synonym for QList<QVariant>.

А теперь ещё сильнее прошу ! :)))))
QVariantList<int> list;

gdb выдаёт src\qfiler.cpp:556: error: `QVariantList' is not a template


Название: Re: проблема с записью QVariant через QSettings
Отправлено: BRE от Март 05, 2009, 19:15
А теперь ещё сильнее прошу ! :)))))
QVariantList<int> list;

gdb выдаёт src\qfiler.cpp:556: error: `QVariantList' is not a template

Код
C++ (Qt)
QVariantList list;
list << 50 << 40 << 30;
 


Название: Re: проблема с записью QVariant через QSettings
Отправлено: faithman от Март 05, 2009, 19:20
А теперь ещё сильнее прошу ! :)))))
QVariantList<int> list;

gdb выдаёт src\qfiler.cpp:556: error: `QVariantList' is not a template

Код
C++ (Qt)
QVariantList list;
list << 50 << 40 << 30;
 


:)))))  Пасибо всем ! :)))))
долго ржал после этого