如何在PyQt QTableWidget中获取seletedIndexes中的项目总和

How to get the sum of items in seletedIndexes in PyQt QTableWidget

我正在尝试以类似于 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'

selectedIndexes returns与项目选择相关的QModelIndex,这些元素不能添加,因为它们是指示项目位置的元素,一个合适的方法是使用selectedItems() that returns 所选项目,但这些项目都不是必须添加的,您应该做的是获取文本并将其转换为浮点数,然后添加这些值:

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)

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