def eventFilter(self, obj, ev): """ Public method called to filter an event. @param obj object, that generated the event (QObject) @param ev the event, that was generated by object (QEvent) @return flag indicating if event was filtered out """ if obj in self.widgets and ev.type() == QEvent.Close: try: self.widgets.remove(obj) if len(self.widgets) == 0: self.lastWidgetClosed.emit() except ValueError: pass return QMdiArea.eventFilter(self, obj, ev)