Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Karl-Philipp от Январь 12, 2008, 19:07



Название: Установка элементов в динамически создаваемую модель
Отправлено: Karl-Philipp от Январь 12, 2008, 19:07
Всем привет, я использую Qt 4.2.3 и компилятор VC++.

У меня такая задача:  Есть таблица, в основе которой лежит динамически создаваемая модель. В модель (QStandardItemModel) нужно поместить элементы QStandardItem со значениями.

Код:
...
QStandardItemModel* model = new QStandardItemModel;
QTableView table;
table.setModel(model);
QList<QStandardItem *> itemList;

for(int i=0;i<5;i++)
{
  QStandardItem* item = new QStandardItem;
  item->setData( QVariant( data ));
  itemList.push_back( item );
}

  model->appendColumn( itemList );
  model->setHeaderData(0, Qt::Horizontal, QVariant("column1"));
...

Самое интересное то, что создается столбец с ячейками и с хедером, но без значений, которые пытаюсь установить.
Уточните, пожалуйста, где в приведенном коде делается что-то не так?

Попробовал переделать.
Cоздал модель с элементами, а потом "вытягивал" из нее индексы элементов и уже для них(индексов) делал setData. Получилось. 


Название: Re: Установка элементов в динамически создаваемую модель
Отправлено: pastor от Январь 12, 2008, 20:00
Нужно сделать так:

item->setData( QVariant(i), Qt::DisplayRole );

или юзать item->setText

По умолчанию, втором параметром для setData выступает Qt::UserRole + 1


Название: Re: Установка элементов в динамически создаваемую модель
Отправлено: Karl-Philipp от Январь 12, 2008, 20:13
Спасибо большое!
:)