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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: проблема с записью QVariant через QSettings  (Прочитано 4458 раз)
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" .
Что не так делаю ?
« Последнее редактирование: Апрель 01, 2009, 11:35 от pastor » Записан
BRE
Гость
« Ответ #1 : Март 05, 2009, 18:43 »

settings->setValue("four_vert",&list);

Код
C++ (Qt)
settings->setValue("four_vert", list);
Записан
Rcus
Гость
« Ответ #2 : Март 05, 2009, 18:46 »

Ну вот так именно не получится Улыбающийся QList<int> не преобразуется в QVariant, но есть QVariantList
Записан
BRE
Гость
« Ответ #3 : Март 05, 2009, 18:52 »

Просмотрел, залез исправлять.  Подмигивающий
Конечно, нужно QList<QVariant> или QVariantList.
« Последнее редактирование: Март 05, 2009, 19:08 от BRE » Записан
faithman
Гость
« Ответ #4 : Март 05, 2009, 18:58 »

Ну вот так именно не получится Улыбающийся QList<int> не преобразуется в QVariant, но есть QVariantList

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

Ткните носом пожалуйста !
Записан
Rcus
Гость
« Ответ #5 : Март 05, 2009, 19:00 »

Assistant -> QVariant
Цитировать
Related Non-Members
typedef QVariantList
Synonym for QList<QVariant>.
Записан
faithman
Гость
« Ответ #6 : Март 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
Записан
BRE
Гость
« Ответ #7 : Март 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;
 
Записан
faithman
Гость
« Ответ #8 : Март 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;
 


Улыбающийся))))  Пасибо всем ! Улыбающийся))))
долго ржал после этого
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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