def copy(self): dataList = self.prepareCopy() mimeData = QMimeData() for dataFormat, data in dataList.iteritems(): v = toVariant(data) mimeData.setData(dataFormat, v.toByteArray()) QtGui.qApp.clipboard().setMimeData(mimeData)
def getEditorData(self, editor): """ Получить значение из редактора. :param editor: редактор, значение из которого необходимо получить. :type editor: QVariant :return: """ text = trim(editor.text()) if text: if self._completer: variantText = QtCore.QVariant(text) completionColumn = self._completer.completionColumn() startIndex = self._completerModel.index(0, completionColumn) if not self._completerModel.match( startIndex, QtCore.Qt.DisplayRole, variantText): db = QtGui.qApp.db completerTable = db.table('rbTextDataCompleter') newRecord = completerTable.newRecord() if newRecord.contains( u'code') and self._completerCode is not None: newRecord.setValue( u'code', QtCore.QVariant(self._completerCode)) newRecord.setValue(self._completer.completionColumn(), variantText) db.insertRecord(completerTable, newRecord) return toVariant(text) else: return QVariant()
def toString(self, val, record): for cache in self._caches: itemId = forceRef(val) record = cache.get(itemId) if not record: return toVariant('') else: val = record.value(0) # На случай, когда нет ссылки на id в следующей таблицы цепочки # Но для текущей таблицы указаны резервные поля (нужно для полей вида freeInput) if val.isNull() and record.count() > 1: for fieldIdx in xrange(1, record.count()): val = record.value(fieldIdx) if not val.isNull(): return toVariant(val) return val
def setEditorData(self, editor, value, record): subTable = self._caches[0].table cond = self._editorValueFilter if isinstance(cond, tuple) and len(cond) == 2: masterFieldName, slaveFieldName = self._editorValueFilter masterValue = record.value(masterFieldName) cond = subTable[slaveFieldName].eq(masterValue) if not self._mapMasterIdToItemIdList.has_key(cond): self._mapMasterIdToItemIdList[cond] = QtGui.qApp.db.getIdList(table=subTable, where=cond) editor.clear() if self._addNone: editor.addItem(u'Не выбрано', userData=toVariant(None)) for itemId in self._mapMasterIdToItemIdList[cond]: itemText = forceString(self.toString(itemId, record)) editor.addItem(itemText, userData=toVariant(itemId))
def __init__(self, title, fieldName, width, **params): self._title = toVariant(title) self._fieldName = fieldName self._width = width self._toolTip = toVariant(params.get('toolTip', None)) self._whatsThis = toVariant(params.get('whatThis', None)) self._external = params.get('external', False) self._valueType = params.get('valueType', None) self._readOnly = params.get('readOnly', False) self._maxLength = params.get('maxLength', None) self._inputMask = params.get('inputMask', None) self._sortable = params.get('sortable', False) self._decsSortToAscById = params.get('decsSortToAscById', False) self._useNaturalStringCompare = params.get('naturalStringCompare', True) self._alignmentChar = params.get('alignment', 'l') self._isVisible = params.get('isVisible', True) self._isRTF = params.get('isRTF', False) self._completerModel = None self._completer = None self._completerCode = None
def createEditor(self, parent): if self.isEnumClass: editor = CEnumComboBox(parent) editor.setEnum(self.values, addNone=self._addNone) return editor editor = CComboBox(parent) if self._addNone: editor.addItem(u'Не задано', toVariant(None)) for value, title in enumerate(self.values): editor.addItem(title, value) return editor
def setToolTip(self, toolTip): self._toolTip = toVariant(toolTip)
def setTitle(self, title): self._title = toVariant(title)
def format(self, values): sum = forceDouble(values[0]) return toVariant(self.locale.toString(sum, 'f', 2))
def format(self, values): return toVariant(forceDecimal(values[0]))
def format(self, values): return toVariant(forceInt(values[0]))
def getEditorData(self, editor): return toVariant(editor.currentText())
def toString(self, val, record): str = forceString(val).lower() for item in self.values: if item.lower() == str: return toVariant(item) return toVariant(u'{' + forceString(val) + u'}')
def getEditorData(self, editor): if self.isEnumClass: return toVariant(editor.value()) idx = editor.currentIndex() return editor.itemData(idx)
def toString(self, val, record): if self._addNone and val.isNull(): return toVariant(u'Не задано') return toVariant(self.values[forceInt(val)])
def setWhatsThis(self, whatsThis): self._whatsThis = toVariant(whatsThis)
def format(self, values): id = forceStringEx(values[0]) if not self.isKeyInCache(id): self.load(id) return toVariant(self.getFromCache(id))
def data(self, column): if column == 0: return toVariant(self._name) else: return QtCore.QVariant()