Russian Qt Forum

Qt => Общие вопросы => Тема начата: Waryable от Ноябрь 25, 2008, 10:19



Название: Проблема с контейнером QList<QStandardItem>
Отправлено: Waryable от Ноябрь 25, 2008, 10:19
Имеется такая конструкция:
Код:
QList<QStandardItem> rowItems;
QStandardItem *parentItem;
for ( int nCol = 0; nCol < 3; ++nCol )
{
...
        QStandardItem *curItem = new QStandardItem/*(icon, textItem)*/;
curItem ->setData(textItem, Qt::DisplayRole);
curItem ->setData(icon, Qt::DecorationRole);
rowItems.insert(nCol, curItem);

...
}
parentItem -> appendRow(rowItems);

Проблема в том, что компилятор ругается на последнюю строку трехэтажным матом. Начало его ругательства выглядит следующим образом:
Цитировать
error C2664: 'void QList<T>::insert(int,const T &)' : cannot convert parameter 2 from 'QStandardItem *' to 'const QStandardItem &'
Далее в окне вывода идет лекция на эту тему.
parentItem здесь является текущим предком в модели для QTreeView. Т.е. к текущему предку прицепляется строка дочерних элементов.

Сколько не бился с этим, не могу найти решения. Люди добрые помогите!   :D


Название: Re: Проблема с контейнером QList<QStandardItem>
Отправлено: spirit от Ноябрь 25, 2008, 10:25
должно быть так
Код
C++ (Qt)
QList<QStandardItem *> rowItems;
 


Название: Re: Проблема с контейнером QList<QStandardItem>
Отправлено: Waryable от Ноябрь 25, 2008, 10:30
spirit, благодарю.
Хочу исправиться: компилятор начинал ругаться не на последнюю строку, а на rowItems.insert(nCol, curItem);