获取所有行值给定一个单元格被选中 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 用户定义函数:在工作表函数中获取单元格被调用