def eventFilter(self, editor, event): # check some key presses if event.type() == QEvent.KeyPress: # if we pressed return and aren't at the last column send a tab # if event.key() == Qt.Key_Return and not self.lastcolumn: # event.accept() # event = QKeyEvent(QEvent.KeyPress, Qt.Key_Tab, Qt.NoModifier) # if we pressed tab and are in the last column send a return if event.key() == Qt.Key_Tab and self.lastcolumn: event.accept() event = QKeyEvent(QEvent.KeyPress, Qt.Key_Return, Qt.NoModifier) # just pass the event up return QItemDelegate.eventFilter(self, editor, event)