Russian Qt Forum

Qt => Model-View (MV) => Тема начата: KosToZyB от Февраль 28, 2011, 18:20



Название: [РЕШЕНО]QTableView
Отправлено: KosToZyB от Февраль 28, 2011, 18:20
Не подскажите что делаю не так при заполнении таблицы? Остается пустой. ни колонок, ни строк нет.
Вот код:
Код
ui->setupUi(this);
QStandardItemModel model(4, 4, this);
ui->tableView->setModel(&model);
for (int row = 0; row < 4; ++row) {
for (int column = 0; column < 4; ++column) {
QModelIndex index = model.index(row, column);
model.setData(index, row + column);
}
}


Название: Re: QTableView
Отправлено: Kolobok от Февраль 28, 2011, 18:27
QStandardItemModel *model = new QStandardItemModel(4, 4, this);


Название: Re: QTableView
Отправлено: KosToZyB от Февраль 28, 2011, 18:32
QStandardItemModel *model = new QStandardItemModel(4, 4, this);
Спасибо. Помогло


Название: Re: QTableView
Отправлено: shirushizo от Февраль 28, 2011, 18:43
Данные хранятся в QStandardItem'ах, так используйте методы:
Код:
void QStandardItemModel::setItem ( int row, int column, QStandardItem * item )
virtual void QStandardItem::setData ( const QVariant & value, int role = Qt::UserRole + 1 )

Навскидку:
Код:
QStandardItemModel model(4, 4, this);
...
for (int row = 0; row < 4; ++row)
  for (int column = 0; column < 4; ++column)
    model.setItem(row, column, new QStandardItem(QString::number(row+column)));


Название: Re: [РЕШЕНО]QTableView
Отправлено: kpx13 от Апрель 14, 2011, 14:44
А почему эсли мы создает через указатель - работает, а без - нет? Я не понимаю логики


Название: Re: [РЕШЕНО]QTableView
Отправлено: RedDog от Апрель 14, 2011, 14:49
А почему эсли мы создает через указатель - работает, а без - нет? Я не понимаю логики
Потому что на стеке создается объект, и как только встречается закрывающаяся фигурная скобка, он уничтожается