QTableWidget에서 모든 소수점 두 자리로만 값을 표시하고 싶습니다. 이를 위해 QTableWidgetItem을 서브 클래 싱했습니다. PyQT : QTableWidget.setItemPrototype이 작동하지 않습니까?
class MyCell(QTableWidgetItem):
def __init__(self, *args):
QTableWidgetItem.__init__(self, *args)
def clone(self):
return MyCell()
def data(self, role):
t = QTableWidgetItem(self).data(role)
if role == 0:
if t.type() != 0:
try:
a, b = str(t.toString()).split('.')
return QVariant(".".join([a,b[:2]]))
except:
return t
return t
내가 설명서를 읽고 나는 같은 것을 사용할 수있는 생각 :
class MyDialog(QDialog):
def __init__(self, parent=None):
super(MyDialog, self).__init__(parent)
self.table = QTableWidget()
acell = MyCell()
self.table.setItemPrototype(acell)
self.table.setRowCount(5)
self.table.setColumnCount(5)
....
을하지만이 다소 무작위로 충돌합니다. self.table.setItem 메서드를 사용할 때 문제없이 작동합니다. 모든 힌트를 부탁드립니다.
감사합니다. 두 가지 수정. 이제는 완벽하게 작동합니다. – foobar