2017-12-19 23 views
0

ms와 비슷한 방식으로 QTableWidget을 사용하려고합니다. currentRow의 모든 항목의 합계를 가져 와서 분명히 다른 열의 동일한 행에 표시하고 싶습니다.PyQt에서 seletedIndexes의 항목 합계를 얻는 방법 QTableWidget

table.setText(sum(data)) 
TypeError: unsupported operand type(s) for +: 'int' and 'QModelIndex' 
+0

다음 코드에 괄호가 없습니다. 적절한 코드를 입력하십시오.'table.setText (sum (item)': P – eyllanesc

+0

잊어 버린 괄호 –

+0

을 추가했습니다. 버튼 또는 일부 키를 누름 – eyllanesc

답변

1

selectedIndexes이 항목의 선택과 관련된 QModelIndex을 반환하고, 이러한 요소들이의 위치를 ​​나타내는 요소이기 때문에 추가 할 수 없습니다 는 여기에이 오류가 내 코드

item = self.tableWidget.selectedIndexes() 
table = QtGui.QTableWidgetItem() 
row = self.tableWidget.currentRow() 
table.setText(sum(item)) 
self.tableWidget.setItem(row, 5, table) 

입니다 item, 적절한 방법은 선택한 항목을 반환하는 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) 

참고 : 나는 셀에 포함 된 값이 숫자라고 가정했습니다.

+0

대단히 감사합니다. IT가 의도 한대로 작동 함 –