Python 如何在QTableWidget中获得项目的自动求和?
我试图让我的QTableWidget获得从第2列到第9列的项目总和。显然,我可以使用以下代码获得它Python 如何在QTableWidget中获得项目的自动求和?,python,pyqt,Python,Pyqt,我试图让我的QTableWidget获得从第2列到第9列的项目总和。显然,我可以使用以下代码获得它 self.tableWidget.itemPressed.connect(self.summation) def summation(self): row = self.tableWidget.currentRow() table = QtGui.QTableWidgetItem() try: data = sum([int(item.text()) for it
self.tableWidget.itemPressed.connect(self.summation)
def summation(self):
row = self.tableWidget.currentRow()
table = QtGui.QTableWidgetItem()
try:
data = sum([int(item.text()) for item in self.tableWidget.selectedItems()])
table.setText(str(data))
except ValueError:
pass
self.tableWidget.setItem(row, 10, table)
我想在单元格中输入一个项目后立即求和,当项目从第2列填充到第9列时,总和会增加,而无需首先选择项目来设置总和。我在更改列数时解决了这个问题
class window31(QtWidgets.QMainWindow):
def __init__(self):
super(window31,self).__init__()
self.table=QtWidgets.QTableWidget()
self.setCentralWidget(self.table)
self.table.setColumnCount(11)
self.table.setRowCount(35) #setting initial count
self.table.setHorizontalHeaderLabels(["col "+str(i) for i in range(5)])
for i in range(self.table.rowCount()):
self.table.setItem(i,9,QtWidgets.QTableWidgetItem("0"))
self.table.itemChanged.connect(self.print_it)
self.show()
def print_it(self,no):
if no.column()==9:
return
try:
col9sum=0
for column in range(2,9):
try:
col9sum+=int(self.table.item(no.row(),column).text())
except:
pass
self.table.setItem(no.row(),9,QtWidgets.QTableWidgetItem(str(col9sum)))
except Exception as E:
print(E)
app=QtWidgets.QApplication([])
ex=window31()
sys.exit(app.exec_())
#time.sleep(5)
column = self.tableWidget.columnCount()
col = (column - 1)
row = self.tableWidget3.currentRow()
num = self.tableWidget3.item(row, 1).text()
num2 = self.tableWidget3.item(row, 2).text()
num3 = self.tableWidget3.item(row, 3).text()
num4 = self.tableWidget3.item(row, 4).text()
num5 = self.tableWidget3.item(row, 5).text()
add = int(num) + int(num2) + int(num3) + int(num4) + int(num5)
table = QtGui.QTableWidgetItem()
table.setText(str(add))
self.tableWidget.setItem(row, col, table)
您是否添加了一些选择策略或行为?您所说的“选择策略”是什么意思?我只做了我展示的。我想要当前行第2列到第9列的项目总数。那么您选择的项目是什么?(self.tableWidget.selectedItems())?我希望程序自动选择从第2列添加到第9列的项目,因为值的总和正在增加,并显示在第10hey@和3R50N1列中。非常抱歉。如果编辑单元格,这将不起作用。因此我更新了我的答案