diff --git a/graphic_components/menu_graphics.py b/graphic_components/menu_graphics.py index 9a1dec4..a05f8d6 100644 --- a/graphic_components/menu_graphics.py +++ b/graphic_components/menu_graphics.py @@ -44,6 +44,7 @@ class TimerDisplayer(QGraphicsWidget): class DifficultyDisplayer(QGraphicsWidget): notFocus = pyqtSignal() + difficultySelected = pyqtSignal(str) def __init__(self, parent=None): super().__init__() @@ -78,6 +79,8 @@ class DifficultyDisplayer(QGraphicsWidget): self.setFlag(QGraphicsItem.ItemIsFocusable, True) self.diff_menu.menuClicked.connect(self.selected_difficulty) + self.diff_menu.menuClicked.connect(self.difficultySelected.emit) + def paint(self, painter, style, widget=None): painter.setPen(self.box_pen) @@ -94,10 +97,6 @@ class DifficultyDisplayer(QGraphicsWidget): self.diff_menu.setVisible(False) self.notFocus.emit() - def connect_buttons_signal(self, func): - self.diff_menu.menuClicked.connect(func) - print('Diff buttons connected') - def selected_difficulty(self, string): self.diff_menu.setVisible(False) self.set_text(string) @@ -110,6 +109,10 @@ class DifficultyDisplayer(QGraphicsWidget): def focusOutEvent(self, event): print('Menu lose focus') self.notFocus.emit() + #self.diff_menu.setVisible(False) + + def boundingRect(self): + return QRectF(0, 0, self.width, self.height) class DifficultyMenu(QGraphicsWidget): @@ -120,7 +123,6 @@ class DifficultyMenu(QGraphicsWidget): super().__init__(parent=parent) self.diff_buttons = [] - #self.difficulty = ['Very Easy', 'Easy', 'Normal', 'Hard', 'Insane'] self.btn_height = height self.btn_width = width self.height = (self.btn_height + 10) * 5 @@ -132,5 +134,8 @@ class DifficultyMenu(QGraphicsWidget): btn.buttonClicked.connect(self.clicked_on) self.diff_buttons.append(btn) + def boundingRect(self): + return QRectF(0, 0, self.width, self.height) + def clicked_on(self, string): self.menuClicked.emit(string) diff --git a/main.py b/main.py index a3d8972..97866dc 100644 --- a/main.py +++ b/main.py @@ -48,7 +48,7 @@ class SudokuWindow(QGraphicsView): self.gameboard.newGameSelected.connect(lambda: self.menuboard.show_children(True)) self.gameboard.newGameSelected.connect(self.menuboard.set_difficulty_text) self.menuboard.diff_display.notFocus.connect(self.gameboard.game_refocus) - self.menuboard.diff_display.connect_buttons_signal(self.gameboard.new_game) + self.menuboard.diff_display.difficultySelected.connect(self.gameboard.new_game) def resizeEvent(self, event): self.fitInView(self.scene.sceneRect(), Qt.KeepAspectRatio)