Как отменить/удалить ввод данных в ячейке TableVew при использовании Qspinbox delegate?

В модели TableView использую QSpinBox Delegate. При активации ячейки автоматически отображается значение по умолчанию в SpinBoxe, которое остается даже несмотря на отмену ввода, или удаления значения. Мне хотелось бы, что бы при отмене ввода или удаления значения, оставалось пустое поле ячейки, после ее деактивации. Каким образом можно этого добиться?

Минимальный пример

import sys
from PyQt5.Qt import *
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import QStyledItemDelegate, QSpinBox
from PyQt5.QtCore import (Qt, QAbstractTableModel, QModelIndex) 

class Delegate(QStyledItemDelegate):
    signal_delegate = QtCore.pyqtSignal(int, int)  

    def createEditor(self, parent, options, index):
        editor = QSpinBox(parent)
        editor.valueChanged.connect(
            lambda val, row=index.row(): self.update_editor(val, row))  
        editor.setFrame(False)
        editor.setRange(-360, 360)
        editor.setSingleStep(1)
        return editor

    def setEditorData(self, editor, index):
        try:
            value = index.model().data(index, Qt.EditRole)
            editor.setValue(int(value))
        except TypeError:
        pass

    def updateEditorGeometry(self, editor, options, index):
        editor.setGeometry(options.rect)

    def setModelData(self, editor, model, index):
        value = str(editor.value())
        model.setData(index, value, Qt.EditRole)

    def update_editor(self, val, row):  
        self.signal_delegate.emit(val, row)  


class MyDelegateInTableView(QtWidgets.QWidget):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)

        self.table = QtWidgets.QTableView()           
        self.sim = QtGui.QStandardItemModel(1,1) 
        self.table.setModel(self.sim)

        boxMain = QtWidgets.QVBoxLayout()
        boxMain.addWidget(self.table)
        self.setLayout(boxMain)

        delegate = Delegate(self)                                             
        self.table.setItemDelegateForColumn(0, delegate)                    

if __name__ == '__main__':
    app = QApplication(sys.argv)
    windowExample = MyDelegateInTableView()
    windowExample.show()
    sys.exit(app.exec_())

Ответы (0 шт):