from qgis.PyQt.QtWidgets import QDockWidget, QTabWidget class BaseDockWidget(QDockWidget): base_title = "LNO Sachsen" tabs = [] action = None # Referenz auf die Toolbar-Action def __init__(self, parent=None, subtitle=""): super().__init__(parent) # Titel zusammensetzen title = self.base_title if not subtitle else f"{self.base_title} | {subtitle}" self.setWindowTitle(title) # Dock fixieren (nur schließen erlaubt) self.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetClosable) # Tabs hinzufügen tab_widget = QTabWidget() for tab_class in self.tabs: tab_widget.addTab(tab_class(), getattr(tab_class, "tab_title", tab_class.__name__)) self.setWidget(tab_widget) def closeEvent(self, event): """Wird aufgerufen, wenn das Dock geschlossen wird.""" if self.action: self.action.setChecked(False) # Toolbar-Button zurücksetzen super().closeEvent(event)