Esempio n. 1
0
    def start(self):
        # I don't think I need further access to instances, but I'll save them anyway
        #        self.root = tk.Tk()
        self.parent = QtWidgets.QApplication([])

        # Gui to handle all main window operations
        self.guiO = Gui.Observer(
        )  # model observer callbacks to presenter set here
        self.guiM = Gui.Model('gui')
        self.guiV = Gui.View(self.parent)
        self.guiI = Gui.Interactor(
        )  # widget event callbacks to presenter set here
        self.guiP = Gui.Presenter(self.guiV, self.guiI, self.guiM, self.guiO)

        # Menu for Gui
        self.menuO = MenuBar.Observer()
        self.menuM = MenuBar.Model('menu')
        self.menuV = MenuBar.View(self.guiV)
        self.menuI = MenuBar.Interactor()
        self.menuP = MenuBar.Presenter(self.menuV, self.menuI, self.menuM,
                                       self.menuO)

        #        # Testing window
        self.testO = TestWindow.Observer()
        self.testM = TestWindow.Model('test')
        self.testV = TestWindow.View(self.guiV)
        self.testI = TestWindow.Interactor()
        self.testP = TestWindow.Presenter(self.testV, self.testI, self.testM,
                                          self.testO)
        #
        #        # Generic
        #        self.genM = GenericWindow.Model('generic', {'gui': self.guiM})
        #        self.genV = GenericWindow.View(self.guiV.window)
        #        self.genP = GenericWindow.Presenter(self.genV, self.genM)

        # Image labeling window
        self.imagesM = Images.Model('images')
        self.labelerO = LabelerWindow.Observer()
        self.labelerM = LabelerWindow.Model('labeler')
        self.labelerV = LabelerWindow.View(self.guiV)
        self.labelerI = LabelerWindow.Interactor()
        self.labelerP = LabelerWindow.Presenter(self.labelerV, self.labelerI,
                                                self.labelerM, self.labelerO)

        #         Options window
        self.optionsO = OptionsWindow.Observer()
        self.optionsM = OptionsWindow.Model('options')
        self.optionsV = OptionsWindow.View(self.guiV)
        self.optionsI = OptionsWindow.Interactor()
        self.optionsP = OptionsWindow.Presenter(self.optionsV, self.optionsI,
                                                self.optionsM, self.optionsO)

        # Make labeler the default window
        self.guiM.window_model_activate('labeler')