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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在PyQt QTableWidget中获取seletedIndexes中的项目总和相关的知识,希望对你有一定的参考价值。

我试图以类似于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返回与项目选择关联的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)

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

以上是关于如何在PyQt QTableWidget中获取seletedIndexes中的项目总和的主要内容,如果未能解决你的问题,请参考以下文章

如何从 QComboBox 中获取所选项目以显示在 PyQt5 的 QTableWidget 中? (QComboBox 有复选框来选择项目)

在 QTableWidget PyQt5 中突出显示单元格

Pyqt如何获取文本为空的QTableWidget项目对象

如何在 PyQt5 中捕获 QTableWidget 上的左右鼠标单击事件?

pyqt Qtablewidget 获取选中多行的行号或者内容

使用 Python pyqt4 获取 QTableWidget 中特定行和列的单元格突出显示