from PyQt5 import QtWidgets as Qt from controllers.group_edit_controller import GroupEdit from controllers.groups_overview_controller import GroupsOverview from model.qtmodels.group_table_model import GroupTableModel from model.qtmodels.person_table_model import PersonTableModel from windows import mainwindow from globals import Global class MainWindow(Qt.QMainWindow, mainwindow.Ui_MainWindow): def _init_screens(self): self._screens = [ GroupsOverview(self), ] self._cur_screen = 0 def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) self._init_screens() self.btnBack.clicked.connect(self.goBack) for controller in self._screens: self.stackedWidget.addWidget(controller) self.goToGroupOverview() def goToGroupOverview(self): self.stackedWidget.setCurrentWidget(self._screens[0]) # if group_id unfilled - create new group def goToGroupEdit(self, group=GroupEdit.NEW_GROUP): group_edit = GroupEdit(self, group) self._screens.append(group_edit) self._cur_screen += 1 self.stackedWidget.addWidget(group_edit) self.stackedWidget.setCurrentWidget(group_edit) def goBack(self): if self._cur_screen <= 0: return self._cur_screen -= 1 self.stackedWidget.setCurrentIndex(self._cur_screen)