def data(self, index: QModelIndex, role=None): value = self._table[index.row()][index.column()] if role == Qt.DisplayRole and value is not None: return str(value) elif role == Qt.TextAlignmentRole: return Qt.AlignVCenter | Qt.AlignLeft
def setModelData(self, editor: QLineEdit, model: PyListModel, index: QModelIndex): model[index.row()].name = str(editor.text())
def setData(self, index: QModelIndex, value: str, role=None): value = None if not value else value self._table[index.row()][index.column()] = value self.dataChanged.emit(index, index) return True