def setEditorData(self, editor, index): text = from_qvariant(index.model().data(index, Qt.DisplayRole), str) if index.column() in (MOD1, MOD2, MOD3, KEY): i = editor.findText(text) if i == -1: i = 0 editor.setCurrentIndex(i) else: QItemDelegate.setEditorData(self, editor, index)
def sizeHint(self, option, index): fm = option.fontMetrics if index.column() in (MOD1, MOD2, MOD3): if self.mod is None: w = 0 for mod in self.modifiers: cw = fm.width(mod) if cw > w: w = cw self.mod = mod else: w = fm.width(self.mod) return QSize(w + 20, fm.height()) elif index.column() == KEY: if self.key is None: w = 0 for key in self.keys: cw = fm.width(key) if cw > w: w = cw self.key = key else: w = fm.width(self.key) return QSize(w + 20, fm.height()) return QItemDelegate.sizeHint(self, option, index)
def sizeHint(self, option, index): fm = option.fontMetrics if index.column() in (MOD1, MOD2, MOD3): if self.mod is None: w = 0 for mod in self.modifiers: cw = fm.width(mod) if cw > w: w = cw self.mod = mod else: w = fm.width(self.mod) return QSize(w+20, fm.height()) elif index.column() == KEY: if self.key is None: w = 0 for key in self.keys: cw = fm.width(key) if cw > w: w = cw self.key = key else: w = fm.width(self.key) return QSize(w+20, fm.height()) return QItemDelegate.sizeHint(self, option, index)
def createEditor(self, parent, option, index): if index.column() in (MOD1, MOD2, MOD3): combobox = QComboBox(parent) combobox.addItems(self.modifiers) return combobox elif index.column() == KEY: combobox = QComboBox(parent) combobox.addItems(self.keys) return combobox else: return QItemDelegate.createEditor(self, parent, option, index)
def __init__(self, dtype, parent=None): QItemDelegate.__init__(self, parent) self.dtype = dtype
def __init__(self, parent=None): QItemDelegate.__init__(self, parent)
def setModelData(self, editor, model, index): if index.column() in (MOD1, MOD2, MOD3, KEY): model.setData(index, to_qvariant(editor.currentText())) else: QItemDelegate.setModelData(self, editor, model, index)
def __init__(self, parent=None): QItemDelegate.__init__(self, parent) self.modifiers = sorted(Key.MODIFIERNAMES.values()) self.mod = None self.keys = sorted(Key.KEYS.values()) self.key = None