我的QTableView
实例仅限于单行选择。我不想关心用户按下的单元格,但它应该始终在(selectedRow,0)中提取数据。
到目前为止,我正在做以下事情:
QModelIndexList indices = _ui->_tbl->selectionModel()->selection().indexes();
QModelIndex id = indices.at(0).sibling(indices.at(0).row(),0);
有更好的方法吗?
答案 0 :(得分:5)
正如Qt doc中关于currentIndex
:
除非当前选择模式为NoSelection,否则该项目也是 选择
所以你可以更快地做到:
QModelIndex index = _ui->_tbl->currentIndex() ;
QModelIndex id = index.sibling(index.row(),0) ;
答案 1 :(得分:1)
使用QItemSelectionModel::selectedRows
执行一步。它为您提供特定列的索引(默认情况下为o)。因此:
QModelIndex index = _ui->_tbl->selectionModel()->selectedRows(0).at(0);