在选择一个单元格的情况下获取所有行值QTableView

问题描述 投票:1回答:1

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

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

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

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

想象一下,选择了c1和b3。现在我得到了[c1, b3],我需要的是dict还是带有以下列表的列表:

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))
python qt pyqt5 qt5 qtableview
1个回答
0
投票

解决方案是访问所选索引的行同级。


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()

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.