Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: alex12 от Ноябрь 07, 2007, 12:10



Название: Выгрузка содержимого QTableWidget
Отправлено: alex12 от Ноябрь 07, 2007, 12:10
Всем привет!
Задача: Дан QTableWidget. Нужно выгрузить его содержимое в QByteArray. Потом из этого QByteArray загрузить в другой QTableWidget.

Вопрос: есть ли красивое "code less" решение?

Что мне приходит в голову: QTableWidget -- это значит, что в реальности используется QTableView + QStandartItemModel.
Значит задача выгрузить содержимое QStandartItemModel.

Пока я придумал что-то такое разлапистое:
Код:
QDataStream ds;
QStandartItemModel *model = tw->model();
QStandartItem defaultItem;
int i,j;
QStandartItem *si;

ds << model->rowCount();
ds << model->columnCount();
for(i=0;i<model->columnCount();i++)
{ si = horizontalHeaderItem(i);
  if( si == 0 ) defaultItem.write(ds);
  else           si->write( ds );
}
for(i=0;i<model->rowCount();i++)
{  si = verticalHeaderItem(i);
  if( si == 0 ) defaultItem.write(ds);
  else           si->write( ds );
}
for(i=0;i<model->rowCount();i++)
{ for(j=0;j<model->columnCount();j++)
  { si = model->item(i,j);
     if( si == 0 ) defaultItem.write(ds);
     else           si->write( ds );
  }
}


Название: Re: Выгрузка содержимого QTableWidget
Отправлено: vaprele07 от Ноябрь 07, 2007, 13:05
см mimeData, dropMimeData у QAbstractItemModel, список итемов можно получить через QItemSelectionModel