有没有办法从表格视图中获取所选行的数据?我用过
QModelIndexList ids = ui->tableView->selectionModel()->selectedRows();
返回所选行的索引列表。我不需要索引。我需要来自所选行的每个单元格的数据。
答案 0 :(得分:7)
你可以尝试这个
int rowidx = ui->tblView->selectionModel()->currentIndex().row();
ui->txt1->setText(model->index(rowidx , 0).data().toString());
ui->txt2->setText(model->index(rowidx , 1).data().toString());
ui->txt3->setText(model->index(rowidx , 2).data().toString());
ui->txt4->setText(model->index(rowidx , 3).data().toString());
答案 1 :(得分:2)
QVariant data(const QModelIndex& index, int role) const
用于返回数据。如果您需要根据QModelIndex
行和列在此处获取数据,并从某个容器中检索它,可能
std::vector<std::vector<MyData> > data;
您必须定义此类映射,并在data()
和setData()
函数中使用它来处理与基础模型数据的交互。
或者QAbstractItemModel
和QTreeView
提供了将类TreeItem
分配给每个QModelIndex
的方法,这样您就可以使用{{1}检索指向每个数据的指针从 QModelIndex.internalPointer()函数返回的指针:
static_cast
所以你可以创建一些映射:
TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
答案 2 :(得分:1)
Try this for getting data. selectedRows(0) indicates first column of selected rows, selectedRows(1) indicates second column of selected rows row likewise
QItemSelectionModel *select = ui->existingtable->selectionModel();
qDebug()<<select->selectedRows(0).value(0).data().toString();
qDebug()<<select->selectedRows(1).value(0).data().toString();
qDebug()<<select->selectedRows(2).value(0).data().toString();
qDebug()<<select->selectedRows(3).value(0).data().toString();