获取所有行值给定一个单元格被选中 QTableView

Posted

技术标签:

【中文标题】获取所有行值给定一个单元格被选中 QTableView【英文标题】:Get All Row Values Given One Cell Is Selected QTableView 【发布时间】:2020-05-23 20:15:43 【问题描述】:

我正在使用 PyQt5。我有一个 QTableView 如下:

1 a1 b1 c1
2 a2 b2 c2
3 a3 b3 c3

我知道如何将所选项目的文本作为列表获取。

但我需要这些选定项目的整行。

想象一下,c1 和 b3 被选中。现在我收到[c1, b3],我需要的是一个字典或一个列表列表:

selected = 1:[a1,b1,c1], 2:[a3,b3,c3]
ór
selected = [[a1,b1,c1],[a3,b3,c3]

我用来获取 [c1, b3] 的代码如下:

selection = self.pandasTV.selectionModel()
indexes = selection.selectedIndexes()
cells_data = []
for i, index in enumerate(indexes):
    cells_data.append(self.model.data(index))

【问题讨论】:

【参考方案1】:

解决方案是访问所选索引的行兄弟。


selection = self.pandasTV.selectionModel()
indexes = selection.selectedRows()
cells_data = []
columns = range(self.model.columnCount())
for index in indexes:
    row = index.row()
    cells_data.append([index.sibling(row, c).data() for c in columns])

请注意,从 Qt 5.11 开始,您可以使用index.siblingAtColumn(c).data()

【讨论】:

以上是关于获取所有行值给定一个单元格被选中 QTableView的主要内容,如果未能解决你的问题,请参考以下文章

获取焦点行值与获取焦点单元格值的区别

获取焦点行值与获取焦点单元格值的区别

尝试使用Javascript从gridview获取复选框选中的行值

Excel VBA 用户定义函数:在工作表函数中获取单元格被调用

Excel2007怎么选中一列中除了第一行之外的下面所有的行?

C#OPEN XML:从EXCEL向DATATABLE获取数据时,空单元格被跳过