Commit f4095d4a authored by Aurélien's avatar Aurélien
Browse files

légère modifications des flèches sur le menu

parent b1b06e56
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ class Menu:
        self.launcher = None
        self.levelGui = None
        self.levelLayout = None
        self.levelWidget = None
        self.menuWidget = None
        self.window = MyWindow(None)
        self.window.setMinimumSize(1000, 500)
        self.window.setCentralWidget(QWidget())
@@ -42,12 +42,12 @@ class Menu:

    def displayGames(self):
        self.removeCentralLayout()
        self.levelWidget = MenuWidget(self.controller)
        self.centralLayout.addWidget(self.levelWidget)
        self.menuWidget = MenuWidget(self.controller)
        self.centralLayout.addWidget(self.menuWidget)

    def displayLevels(self, nbLevels, levelController):
            self.removeCentralLayout()
            self.levelWidget = QWidget()
            self.menuWidget = QWidget()
            self.levelLayout = QGridLayout()
            for i in range(nbLevels):
                levelButton = LevelButton(i + 1, levelController)
@@ -56,8 +56,8 @@ class Menu:
            infinityButton = LevelButton(-1, levelController)
            self.levelLayout.addWidget(infinityButton, 1, 0, 1, nbLevels)

            self.levelWidget.setLayout(self.levelLayout)
            self.centralLayout.addWidget(self.levelWidget)
            self.menuWidget.setLayout(self.levelLayout)
            self.centralLayout.addWidget(self.menuWidget)

    def displayLevel(self, levelGui):
        self.removeCentralLayout()
@@ -71,10 +71,10 @@ class Menu:
        self.centralLayout.addWidget(self.launcher)

    def removeCentralLayout(self):
        if self.levelWidget is not None:
            self.centralLayout.removeWidget(self.levelWidget)
            self.levelWidget.deleteLater()
            self.levelWidget = None
        if self.menuWidget is not None:
            self.centralLayout.removeWidget(self.menuWidget)
            self.menuWidget.deleteLater()
            self.menuWidget = None
        if self.levelGui is not None:
            self.centralLayout.removeWidget(self.levelGui)
            self.levelGui.deleteLater()
+32 −17
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ def get_model_tree():
class MenuWidget(QWidget):
    def __init__(self, controller):
        super(QWidget, self).__init__()
        self.test = 0

        self.layout = QHBoxLayout()
        self.controller = controller
@@ -41,8 +42,15 @@ class MenuWidget(QWidget):
        self.setLayout(self.layout)

    def createMenuView(self):
        self.treeScene = QGraphicsScene()
        self.menuView = MenuView(self.treeScene, controller=self.controller)
        self.menuScene = QGraphicsScene()
        self.menuView = MenuView(self.menuScene, controller=self.controller)
        #self.connect()

    def connect(self):
        for arrow in self.menuView.arrows:
            self.test += 1
            print(self.test)
            #arrow.connect()


class MenuView(QGraphicsView):
@@ -125,7 +133,7 @@ class MenuView(QGraphicsView):
        yLength = endY - beginY
        p1x = beginX + 0.35 * xLength
        p1y = beginY + 0.15 * yLength
        p2x = beginX + 0.25 * xLength
        p2x = beginX + 0.35 * xLength
        p2y = beginY + 0.25 * yLength
        self.drawArrow(beginX, beginY, endX, endY, p1x, p1y, p2x, p2y, GameEnum.BINARY_TREE_TO_PLANAR_TREE)
        beginX = self.c2x + self.circleSize
@@ -148,6 +156,7 @@ class MenuView(QGraphicsView):
        self.arrows.append(arrow)
        self.scene().addItem(arrow)


    def drawCircles(self):
        pen = QPen(QColor(23, 32, 42))
        pen.setWidth(5)
@@ -192,11 +201,11 @@ class MenuView(QGraphicsView):
        nodePen = QPen(QColor(21, 67, 96))
        branchPen = QPen(QColor(21, 67, 96))
        nodeColor = QColor(245, 183, 177)
        lineWidth = 0.015 * self.circleSize
        lineWidth = int(0.015 * self.circleSize)
        nodeWidth = 0.12 * self.circleSize
        branchPen.setWidth(lineWidth)
        branchPen.setCapStyle(Qt.RoundCap)
        nodePen.setWidth(0.1 * nodeWidth)
        nodePen.setWidth(int(0.1 * nodeWidth))

        x1 = self.c2x + self.circleSize / 2
        y1 = self.c2y + 0.1 * self.circleSize
@@ -246,11 +255,11 @@ class MenuView(QGraphicsView):
        nodePen = QPen(QColor(21, 67, 96))
        branchPen = QPen(QColor(21, 67, 96))
        nodeColor = QColor(169, 204, 227)
        lineWidth = 0.015 * self.circleSize
        lineWidth = int(0.015 * self.circleSize)
        nodeWidth = 0.12 * self.circleSize
        branchPen.setWidth(lineWidth)
        branchPen.setCapStyle(Qt.RoundCap)
        nodePen.setWidth(0.1 * nodeWidth)
        nodePen.setWidth(int(0.1 * nodeWidth))

        x1 = self.c1x + self.circleSize / 2.35
        y1 = 0.1 * self.h + 0.42 * self.circleSize
@@ -339,6 +348,11 @@ class Arrow(QGraphicsItemGroup):
        self.clickableObject = Clickable()
        self.game = game
        self.controller = controller
        self.drawArrow(game, beginX, beginY, endX, endY, p1x, p1y, p2x, p2y, circleSize)
        self.connect()

    def drawArrow(self, game, beginX: float, beginY: float, endX: float, endY: float, p1x: float, p1y: float, p2x: float,
                  p2y: float, circleSize: float):
        offset = 0.03 * circleSize
        pen = QPen()
        pen.setWidth(3)
@@ -409,14 +423,14 @@ class Arrow(QGraphicsItemGroup):
            line = QGraphicsPathItem()
            line.setPen(pen)
            path = QPainterPath()
            path.moveTo(beginX - offset, beginY)
            path.moveTo(beginX - offset, beginY - 0.3 * offset)
            path.cubicTo(p1x - offset, p1y - offset, p2x - offset, p2y - offset, endLineX, endLineY - offset)
            line.setPath(path)

            line2 = QGraphicsPathItem()
            line2.setPen(pen)
            path = QPainterPath()
            path.moveTo(beginX + offset, beginY)
            path.moveTo(beginX + 0.7 * offset, beginY + 0.3 * offset)
            path.cubicTo(p1x + offset, p1y + offset, p2x + offset, p2y + offset, endLineX, endLineY + 1.5 * offset)
            line2.setPath(path)

@@ -439,7 +453,7 @@ class Arrow(QGraphicsItemGroup):
            line.setPen(pen)
            path = QPainterPath()
            path.moveTo(beginX - 1.5 * offset, beginY + offset)
            path.cubicTo(p1x - 2 * offset, p1y - offset, p2x - offset, p2y - offset, endLineX - offset, endLineY)
            path.cubicTo(p1x - 3 * offset, p1y - offset, p2x - offset, p2y - offset, endLineX - offset, endLineY)
            line.setPath(path)

            line2 = QGraphicsPathItem()
@@ -474,20 +488,22 @@ class Arrow(QGraphicsItemGroup):
            line2 = QGraphicsPathItem()
            line2.setPen(pen)
            path = QPainterPath()
            path.moveTo(beginX + offset, beginY)
            path.cubicTo(p1x + offset, p1y + offset, p2x + offset, p2y + offset, endLineX + 1.5 * offset, endLineY + offset)
            path.moveTo(beginX + 1.3 * offset, beginY + 0.7 * offset)
            path.cubicTo(p1x + offset, p1y + offset, p2x + offset, p2y + offset, endLineX + 1.5 * offset,
                         endLineY + offset)
            line2.setPath(path)

            line3 = QGraphicsLineItem(endLineX - 0.3 * offset, endLineY, endLineX - 1.3 * offset, endLineY)
            line3 = QGraphicsLineItem(endLineX - 0.3 * offset, endLineY, endLineX - 1.3 * offset, endLineY - 0.5 * offset)
            line3.setPen(pen)

            line4 = QGraphicsLineItem(endLineX + 2 * offset, endLineY + offset, endLineX + 2.5 * offset, endLineY + offset)
            line4 = QGraphicsLineItem(endLineX + 1.5 * offset, endLineY + offset, endLineX + 2.5 * offset,
                                      endLineY + 1.5 * offset)
            line4.setPen(pen)

            line5 = QGraphicsLineItem(endLineX - 1.3 * offset, endLineY, endX, endY)
            line5 = QGraphicsLineItem(endLineX - 1.3 * offset, endLineY - 0.5 * offset, endX, endY)
            line5.setPen(pen)

            line6 = QGraphicsLineItem(endLineX + 2.5 * offset, endLineY + offset, endX, endY)
            line6 = QGraphicsLineItem(endLineX + 2.5 * offset, endLineY + 1.5 * offset, endX, endY)
            line6.setPen(pen)
        else:
            endLineX = endX - 0.1 * circleSize
@@ -525,7 +541,6 @@ class Arrow(QGraphicsItemGroup):
        self.addToGroup(line4)
        self.addToGroup(line5)
        self.addToGroup(line6)
        self.connect()

    def connect(self):
        if self.game == GameEnum.DYCK_WORD_TO_BINARY_TREE:
+0 −1
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@ from PyQt5.QtWidgets import *

from view.levelGui import LevelGui
from view.treeView import TreeView
from PyQt5.QtCore import Qt


class PlanarTreeToBinaryTreeGui(LevelGui):
+2 −2
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ class PlanarTreeToDyckWordGui(LevelGui):
        self.layout.addLayout(self.menuBarLayout, 0, 0, 1, 2)
        self.layout.addWidget(self.treeView, 1, 0)
        self.layout.addWidget(self.dyckWordGroupBox, 1, 1)
        self.layout.setColumnStretch(0, 1)
        self.layout.setColumnStretch(1, 2)
        self.layout.setColumnStretch(0, 2)
        self.layout.setColumnStretch(1, 1)

        self.setLayout(self.layout)