如何从所选行(QTableView)获取单元格值?

Sta*_*als 6 c++ qt qtableview

我有一个QTableView,我需要从所选行的第一个单元格获取值(字符串)(可以选择行上的任何单元格).但是,只有在选择了一行时才需要此值.

我想 - 我需要得到所选行的索引,然后得到该行上第一个сell的值,但我找不到办法.

Chr*_*ris 11

myTableView->selectionModel()->currentIndex().row()
Run Code Online (Sandbox Code Playgroud)

将为您提供当前所选行的索引.从那里你应该有足够的信息来查找模型中的行/列对.

此外,QItemSelectionModel::selectedRows()还会告诉您选择了多少行.

  • 我能够获得行索引,但是如何获取第一列的值? (2认同)
  • @ Suda.nese的一个老问题,但对于需要获取值的其他人:`QModelIndex index = myTableView-> selectionModel()-> currentIndex();`获取索引,然后`QVariant value = index.sibling( index.row(),index.column())。data();`将获得单击的单元格的值。 (2认同)

小智 7

Python 代码将如下所示:

    self.tableView.clicked.connect(self.on_Click)
Run Code Online (Sandbox Code Playgroud)

当用户点击表格单元格时 on_Click() 方法被调用

    def on_Click(self):
        # #selected cell value.
        index=(self.tableView.selectionModel().currentIndex())
        # print(index)
        value=index.sibling(index.row(),index.column()).data()
        print(value)
Run Code Online (Sandbox Code Playgroud)

解释。

“值”包含所选单元格的单元格值。

       index.row() # gives current selected row.
       index.column() # gives current selected column.
       index.sibling(index.row(),index.column()).data() # will return cell data
Run Code Online (Sandbox Code Playgroud)

  • 您的回答为我指明了正确的方向,并帮助我解决了几个月来我从 qtableview qsqltablemodel 索引获取工具提示时遇到的问题。我必须做的唯一的mod是使用因为我尝试过这个`index.sibling(index.row(),index.column()).data()`并将列设置为5但它不起作用`index .sibling(index.row(),index.column(5)).data()` 所以我最终使用了它,它可以从同一索引行但选择的第 5 列获取值。`index.siblingAtColumn(5).data()` (2认同)