从QTableView提取数据
问题描述:
我有一个QTableView
实例限于单行选择。我不想关心用户按下的单元格,但它应该始终提取(selectedRow,0)中的数据。从QTableView提取数据
到目前为止,我做了以下内容:
QModelIndexList indices = _ui->_tbl->selectionModel()->selection().indexes();
QModelIndex id = indices.at(0).sibling(indices.at(0).row(),0);
有没有更好的办法?
答
如关于currentIndex
Qt的文档指出:
除非当前选择模式是NOSELECTION,该项目也是 选择
所以,你可以做到这一点更快:
QModelIndex index = _ui->_tbl->currentIndex() ;
QModelIndex id = index.sibling(index.row(),0) ;
答
使用QItemSelectionModel::selectedRows
取出一步。它为您提供特定列的索引(默认为o)。因此:
QModelIndex index = _ui->_tbl->selectionModel()->selectedRows(0).at(0);
答
You ca n获取所选行的第一个单元格的数据,如果您通过model
。
QModelIndex id = _ui->_tbl->model()->index(_ui->_tbl->currentIndex().row(),0);
可惜Qt
不支持(我想不通为什么)一个QModelIndex
构造与row
和column
作为参数。
+0
我想直接的方法来检索部件的元素,如表格,树,列表等。 –
我找不到它在[DOC](http://doc.qt.nokia.com/latest/qabstractitemview.html#currentIndex)。是否有另一个我不知道的文档? =) –
@Royi我发现这句话的Qt 4.7.3 DOC'QAbstractItemView中:: setCurrentIndex()' – azf