我试图以类似于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'
答案 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)
注意:我假设单元格中包含的值代表数字。