Loading view/menu.py +10 −10 Original line number Diff line number Diff line Loading @@ -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()) Loading @@ -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) Loading @@ -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() Loading @@ -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() Loading view/menuWidget.py +32 −17 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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): Loading Loading @@ -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 Loading @@ -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) Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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) Loading @@ -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() Loading Loading @@ -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 Loading Loading @@ -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: Loading view/planarTreeToBinaryTreeGui.py +0 −1 Original line number Diff line number Diff line Loading @@ -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): Loading view/planarTreeToDyckWordGui.py +2 −2 Original line number Diff line number Diff line Loading @@ -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) Loading Loading
view/menu.py +10 −10 Original line number Diff line number Diff line Loading @@ -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()) Loading @@ -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) Loading @@ -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() Loading @@ -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() Loading
view/menuWidget.py +32 −17 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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): Loading Loading @@ -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 Loading @@ -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) Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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) Loading @@ -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() Loading Loading @@ -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 Loading Loading @@ -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: Loading
view/planarTreeToBinaryTreeGui.py +0 −1 Original line number Diff line number Diff line Loading @@ -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): Loading
view/planarTreeToDyckWordGui.py +2 −2 Original line number Diff line number Diff line Loading @@ -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) Loading