【问题标题】:Get All Row Values Given One Cell Is Selected QTableView获取所有行值给定一个单元格被选中 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))

【问题讨论】:

    标签: python qt pyqt5 qt5 qtableview


    【解决方案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()

    【讨论】:

      猜你喜欢
      • 2012-07-27
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多