from PySide6.QtWidgets import QMainWindow, QWidget, QVBoxLayout, QTabWidget, QMenu, QTableView from gui.model_config import KontorModelConfig from gui.table_model import KontorTableModel class ComicWindow(QWidget): def __init__(self, main_window): super().__init__() self.statusBar = main_window.statusBar self._main_window = main_window self.data_views = list() # self._create_menubar() self._init_gui() def _init_gui(self): self.central_widget = QWidget() layout = QVBoxLayout() #self.central_widget.setLayout(parent_layout) self.tabs = QTabWidget() self.tabs.addTab(self.generate_data_tab("comic"), "Comics") self.tabs.addTab(self.generate_data_tab("publisher"), "Publisher") self.tabs.currentChanged.connect(self._tab_changed) # label.setAlignment(Qt.AlignmentFlag.AlignCenter) layout.addWidget(self.tabs) self.setLayout(layout) # self.setCentralWidget(self.central_widget) # def _create_menubar(self): # menu_bar = self.menuBar() # comic_menu = QMenu("Comic") # menu_bar.addMenu(comic_menu) def refresh(self): self.data_views[self.tabs.currentIndex()].refresh() def _tab_changed(self, tab_index): self.data_views[tab_index].refresh() def generate_data_tab(self, table_name): data_tab = QWidget() table_config = KontorModelConfig(self._main_window.kontor_db, self, table_name) model = KontorTableModel(table_config) layout = QVBoxLayout() self.data_views.append(model) data_tab.setLayout(layout) table_view = QTableView() table_view.setModel(model) layout.addLayout(table_config.get_filter_layout()) layout.addWidget(table_view) model.refresh() return data_tab