def eventFilter(self, widget, event): 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 QLabel.eventFilter(self, widget, event)