def setEditorData(self, editor, value, record): if self.isEnumClass: editor.setValue(forceInt(value)) return idx = editor.findData(value) if idx in xrange(editor.count()): editor.setCurrentIndex(forceInt(idx))
def editorEvent(self, event, model, option, index): flags = int(model.flags(index)) checkableFlags = int(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) notCheckableFlags = (checkableFlags & flags) != checkableFlags if notCheckableFlags: return False value = index.data(Qt.CheckStateRole) if not value.isValid(): return False editableFlags = int(Qt.ItemIsEnabled | Qt.ItemIsEditable) if (editableFlags & flags) == editableFlags: return QtGui.QStyledItemDelegate.editorEvent( self, event, model, option, index) state = QVariant(Qt.Unchecked if forceInt(value) == Qt.Checked else Qt.Checked) eventType = event.type() if eventType in [ QEvent.MouseButtonRelease, QEvent.MouseButtonDblClick ]: return model.setData(index, state, Qt.CheckStateRole) if eventType == QEvent.KeyPress: if event.key() in [Qt.Key_Space, Qt.Key_Select]: return model.setData(index, state, Qt.CheckStateRole) return QtGui.QStyledItemDelegate.editorEvent(self, event, model, option, index)
def formatSex(sex): sex = forceInt(sex) if sex == 1: return u'М' elif sex == 2: return u'Ж' else: return u''
def formatNative(self, values): return forceInt(values[0])
def format(self, values): return toVariant(forceInt(values[0]))
def toString(self, val, record): if self._addNone and val.isNull(): return toVariant(u'Не задано') return toVariant(self.values[forceInt(val)])