Проблема с округлением значения item
Имеется код:
def buttonLast(self):
row = self.tableWidget_3.rowCount()
if not row:
return
column = 1
item = self.tableWidget_3.item(row - 1, column)
print(round(item))
В котором выбирается последнее значение в столбце tableWidget.
Но, при команде print(round(item)) получаю ошибку:
Traceback (most recent call last): File "G:\PyCharm\SckethPython\pythonProject_x32_3_8_6\SL_lke2.1.py", line 138, in buttonLast print(round(item)) TypeError: type QTableWidgetItem doesn't define __round__ method
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
То к чему вы собираетесь применить round - это QTableWidgetItem object
import sys
from PyQt5.Qt import *
class Example(QDialog):
def __init__(self):
super().__init__()
self.mytable = QTableWidget(4, 2)
layout = QVBoxLayout(self)
layout.addWidget(self.mytable)
btn = QPushButton("Click me")
btn.clicked.connect(self.buttonLast)
layout.addWidget(btn)
for i in range(4):
for j in range(2):
item = QTableWidgetItem("{}.{}123000".format(i, j))
item.setTextAlignment(Qt.AlignHCenter)
self.mytable.setItem(i, j, item)
def buttonLast(self):
row = self.mytable.rowCount()
if not row:
return
column = 1
item = self.mytable.item(row - 1, column)
print(f'\nitem --> {item}\n') # --> QTableWidgetItem object at 0x0...>
if item:
item = item.text() # --> str
item = float(item) # --> float
print(round(item))
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Example()
w.show()
sys.exit(app.exec_())
