def eventFilter(self, obj, event): """Custom Events Filder for detecting clicks on Tabs.""" if obj == self: if event.type() == QEvent.MouseMove: index = self.tabAt(event.pos()) self.setCurrentIndex(index) return True else: return QTabBar.eventFilter(self, obj, event) # False else: return QMainWindow.eventFilter(self, obj, event)
def eventFilter(self, widget, event): """ Overloaded object method Params: QObject widget -> watched object (here: self) QEvent event -> the event that is handled Return: True if the event is handled Return value of QTabBar.eventFilter() if the event is not handled (bool) Determines editing is canceled if a click event is recorded outside of the _editor or if [esc] is pressed by hiding the _editor object. Else, the event is passed on to the parent class. """ if ((event.type() == QEvent.MouseButtonPress and not self._editor.geometry().contains(event.globalPos())) or (event.type() == QEvent.KeyPress and event.key() == Qt.Key_Escape)): self._editor.hide() return True return QTabBar.eventFilter(self, widget, event)