QTableWidgetでは、すべての値を小数点以下2桁までしか表示しません。そのために私は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メソッドを使用すると問題なく動作します。どんなヒントもありがとうございます。
ありがとうございました。 2つの訂正のために。今は完全に動作します。 – foobar