Commit a67d3fec authored by Aurelien Dufour's avatar Aurelien Dufour
Browse files

nouveau menu fonctionnel

parent 4c4fa2c5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ class BinaryTreeToPlanarTree(LevelController):
        self.menuController.menu.displayLauncher(self.launcher)

    def launchLevel(self):
        print("yes")
        self.levelGui = BinaryTreeToPlanarTreeGui(self)
        self.levelGui.okButton.clicked.connect(self.nextLevel)
        self.levelGui.cancelButton.clicked.connect(self.sameLevel)
+6 −16
Original line number Diff line number Diff line
@@ -9,29 +9,18 @@ from view.menu import Menu


class MenuController:
    def __init__(self, menu: Menu):
    def __init__(self):
        self.levelGui = None
        self.level = None
        self.menu = menu
        self.menu = Menu(self)
        self.game = None
        self.diaplayMenu()

    def lauchApplication(self):
        self.menu.window.show()

    def diaplayMenu(self):
        self.menu.displayGames()
        self.menu.menuAction.triggered.connect(self.diaplayMenu)
        for gameButton in self.menu.gameButtons:
            if gameButton.game == GameEnum.DYCK_WORD_TO_BINARY_TREE:
                gameButton.clicked.triggered.connect(self.on_DyckWordToBinaryTree_Button_Pressed)
            elif gameButton.game == GameEnum.BINARY_TREE_TO_DYCK_WORD:
                gameButton.clicked.triggered.connect(self.on_binaryTreeToDyckWord_Button_Pressed)
            elif gameButton.game == GameEnum.BINARY_TREE_TO_PLANAR_TREE:
                gameButton.clicked.triggered.connect(self.on_binaryTreeToPlanarTree_Button_Pressed)
            elif gameButton.game == GameEnum.PLANAR_TREE_TO_BINARY_TREE:
                gameButton.clicked.triggered.connect(self.on_planarTreeToBinaryTree_Button_Pressed)
            elif gameButton.game == GameEnum.PLANAR_TREE_TO_DYCK_WORD:
                gameButton.clicked.triggered.connect(self.on_PlanarTreeToDyckWord_Button_Pressed)
            elif gameButton.game == GameEnum.DYCK_WORD_TO_PLANAR_TREE:
                gameButton.clicked.triggered.connect(self.on_DyckWordToPlanarTree_Button_Pressed)

    def on_DyckWordToBinaryTree_Button_Pressed(self):
        self.game = DyckWordToBinaryTree(self)
@@ -40,6 +29,7 @@ class MenuController:
        self.game = BinaryTreeToDyckWord(self)

    def on_binaryTreeToPlanarTree_Button_Pressed(self):
        print("OK")
        self.game = BinaryTreeToPlanarTree(self)

    def on_planarTreeToBinaryTree_Button_Pressed(self):
+2 −3
Original line number Diff line number Diff line
@@ -10,9 +10,8 @@ from view.menu import Menu

def launchApplication():
    qapp = QApplication(sys.argv)
    app = Menu()
    controller = MenuController(app)
    app.window.show()
    controller = MenuController()
    controller.lauchApplication()
    qapp.exec_()


+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ def title(game: GameEnum):
        return "Jeu: Arbre binaire - > Mot de Dyck"
    elif game == GameEnum.PLANAR_TREE_TO_BINARY_TREE:
        return "Jeu: Arbre planaire - > Arbre binaire"
    elif game == GameEnum.BINARY_TREE_TO_DYCK_WORD:
    elif game == GameEnum.PLANAR_TREE_TO_DYCK_WORD:
        return "Jeu: Arbre planaire - > Mot de Dyck"
    else:
        return "Jeu: Mot de Dyck - > Arbre planaire"
+8 −60
Original line number Diff line number Diff line
import sys
from math import sqrt

from PyQt5.QtWidgets import *
from model.GameEnum import nbGames, GameEnum
from view.gameButton import GameButton
from view.menuWidget import BinaryTreeWidget, DyckWordWidget, PlanarTreeWidget, ArrowWidget
from view.menuWidget import MenuWidget


class MyWindow(QMainWindow):
@@ -12,8 +9,7 @@ class MyWindow(QMainWindow):
        super(QMainWindow, self).__init__(*args, **kwargs)

    def resizeEvent(self, e):
        #print(self.size())
        pass
        self.setMaximumHeight(int(0.7 * self.width()))

    """def closeEvent(self, event):
        msgBox = QMessageBox()
@@ -30,17 +26,19 @@ class MyWindow(QMainWindow):
        msgBox.exec()"""

class Menu:
    def __init__(self):
    def __init__(self, controller):
        self.controller = controller
        self.launcher = None
        self.levelGui = None
        self.gamesLayout = None
        self.gamesWidget = None
        self.window = MyWindow(None)
        self.window.setMinimumSize(1000, 500)
        self.window.setMaximumHeight(self.window.width())
        self.window.setCentralWidget(QWidget())
        self.gameButtons = []
        self.centralLayout = QHBoxLayout(self.window.centralWidget())
        self.paramWindow(1200, 600, "Initiation au parcours d'arbre")
        self.paramWindow(1200, 600, "Bijamacc")
        self.addSubMenus()
        self.displayGames()
        self.shortCutAction = QAction()
@@ -48,8 +46,6 @@ class Menu:
        self.shortCutAction.triggered.connect(self.window.close)
        self.window.addAction(self.shortCutAction)

    def resizeEvent(self, e):
        pass

    # function to change parameters of the window (size, title, color...)
    def paramWindow(self, width, high, title):
@@ -66,6 +62,7 @@ class Menu:

        # we add actions to the submenu
        self.menuAction = QAction("&Menu", self.window)
        self.menuAction.triggered.connect(self.displayGames)
        self.leaveAction = QAction("&Quitter", self.window)
        self.leaveAction.triggered.connect(self.window.close)
        self.helpAction = QAction("&Aide", self.window)
@@ -76,58 +73,9 @@ class Menu:
        help.addAction(self.helpAction)
        info.addAction(self.infoAction)


    # function to put the central widget in the menu
    """def displayGames(self):
        self.removeCentralLayout()
        self.gamesWidget = QWidget()
        self.gamesLayout = QGridLayout()
        nbSteps = int(sqrt(nbGames()))
        nbColumns = []
        for i in range(nbSteps):
            nbColumns.append(int(nbGames() / nbSteps))
        nbGamesToAdd = nbGames() - nbSteps * int(nbGames() / nbSteps)
        cptRow = 0
        while nbGamesToAdd > 0:
            nbColumns[cptRow] += 1
            cptRow += 1
            nbGamesToAdd -= 1
        cptRow = 0
        cptColumn = 0
        for i in range(nbGames()):
            game = GameEnum(i)
            buttonGame = GameButton(game)
            self.gameButtons.append(buttonGame)
            self.gamesLayout.addWidget(buttonGame, cptRow, cptColumn)
            if cptColumn + 1 >= nbColumns[cptRow]:
                cptRow += 1
                cptColumn = 0
            else:
                cptColumn += 1

        self.gamesWidget.setLayout(self.gamesLayout)
        self.centralLayout.addWidget(self.gamesWidget)"""

    def displayGames(self):
        self.removeCentralLayout()
        self.gamesWidget = QWidget()
        self.gamesLayout = QHBoxLayout()

        """binary_tree_widget = BinaryTreeWidget()
        self.gamesLayout.addWidget(binary_tree_widget, 0, 2)
        arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE)
        self.gameButtons.append(arrowBinaryTreeToPlanarTree)
        self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree, 1, 1)

        planar_tree_widget = PlanarTreeWidget()
        self.gamesLayout.addWidget(planar_tree_widget, 2, 0)
        dyck_word_widget = DyckWordWidget()
        self.gamesLayout.addWidget(dyck_word_widget, 2, 4)"""
        arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE)
        self.gameButtons.append(arrowBinaryTreeToPlanarTree)
        self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree)

        self.gamesWidget.setLayout(self.gamesLayout)
        self.gamesWidget = MenuWidget(self.controller)
        self.centralLayout.addWidget(self.gamesWidget)

    def displayLevel(self, levelGui):
Loading