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

时间:2017-12-19 04:59:34

标签: python pyqt pyqt4 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'

1 个答案:

答案 0 :(得分:1)

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

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)

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