#sn_plan41/ui/dockwidget.py from sn_basis.ui.tabs.settings_tab import SettingsTab from sn_plan41.ui.tab_a_ui import TabA from sn_plan41.ui.tab_b_ui import TabB from sn_basis.ui.base_dockwidget import BaseDockWidget from sn_basis.functions.qt_wrapper import QTabWidget from sn_basis.functions.message_wrapper import error class DockWidget(BaseDockWidget): tabs = [TabA, TabB,SettingsTab] def __init__(self, parent=None, subtitle="", pruefmanager=None, data_grabber=None): super().__init__(parent, subtitle) # Services als Attribute speichern self.pruefmanager = pruefmanager self.data_grabber = data_grabber # Tabs NACH Services initialisieren (override der Basis-Logik) self._init_tabs_with_services() def _init_tabs_with_services(self): """Tabs mit pruefmanager/data_grabber initialisieren""" try: # Bestehendes TabWidget löschen self.setWidget(None) tab_widget = QTabWidget() for tab_class in self.tabs: tab_instance = tab_class(self) # parent=self.dockwidget tab_title = getattr(tab_class, "tab_title", tab_class.__name__) tab_widget.addTab(tab_instance, tab_title) # Services durchreichen if hasattr(tab_instance, 'set_services'): tab_instance.set_services( pruefmanager=self.pruefmanager, data_grabber=self.data_grabber ) self.setWidget(tab_widget) except Exception as e: error("Services-Tabs konnten nicht initialisiert werden", str(e))