代码之家  ›  专栏  ›  技术社区  ›  And3r50n 1

如何在PyQt QTableWidget中获取SeletedIndex中的项目总数

  •  0
  • And3r50n 1  · 技术社区  · 7 年前

    我试图以一种类似于ms excel的方式使用QTableWidget。我想得到currentRow中所有项目的总和,并将其显示在同一行明显不同的列上。 这是我的密码

    item = self.tableWidget.selectedIndexes()
    table = QtGui.QTableWidgetItem()
    row = self.tableWidget.currentRow()
    table.setText(sum(item))
    self.tableWidget.setItem(row, 5, table)
    

    我收到以下错误:

        table.setText(sum(data))
    TypeError: unsupported operand type(s) for +: 'int' and 'QModelIndex'
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   eyllanesc RAHUL KUMAR    7 年前

    SelectedIndex返回与项选择相关联的QModelIndex,并且无法添加这些元素,因为它们是指示项位置的元素,适当的方法是使用selectedItems()返回所选项,但不必添加这些项,您应该做的是获取文本并将其转换为float,然后添加这些值:

    val = sum([float(item.text()) for item in self.tableWidget.selectedItems()])
    table = QtGui.QTableWidgetItem()
    table.setText(str(val))
    row = self.tableWidget.currentRow()
    self.tableWidget.setItem(row, 5, table)
    

    注: 我假设单元格中包含的值表示数字。