From ad78225425f7425725abd05bbf84276710072d03 Mon Sep 17 00:00:00 2001 From: En Yi Date: Tue, 10 Jul 2018 15:20:45 +0800 Subject: [PATCH] Add a pause before drawing grid --- graphic_components/board.py | 8 +++++++- graphic_components/sudoku_graphics.py | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/graphic_components/board.py b/graphic_components/board.py index 8b7061b..e0ce988 100644 --- a/graphic_components/board.py +++ b/graphic_components/board.py @@ -99,14 +99,17 @@ class GameBoard(BoxBoard): self.gamegrid = sdk_grap.SudokuGrid(self.width, self.height, parent=self) self.numring = sdk_grap.NumberRing(parent=self) + self.playmenu = sdk_grap.PlayMenu(parent=self) self.show_grid(False) + self.show_playmenu(False) self.gamegrid.buttonClicked.connect(self.show_number_ring) self.numring.connect_button_signals(self.select_ring_number) self.gamegrid.setFocus(Qt.MouseFocusReason) - self.anim.finished.connect(lambda: self.show_grid(True)) + self.anim.finished.connect(lambda: self.show_playmenu(True)) + self.playmenu.buttonClicked.connect(lambda: self.show_grid(True)) self.toggle_anim(True) def show_number_ring(self, x=0, y=0): @@ -131,6 +134,9 @@ class GameBoard(BoxBoard): def show_grid(self, state): self.gamegrid.setVisible(state) + def show_playmenu(self, state): + self.playmenu.setVisible(state) + class MenuBoard(BoxBoard): # TODO: Create the components for the menu: A timer and a difficulty selector diff --git a/graphic_components/sudoku_graphics.py b/graphic_components/sudoku_graphics.py index 661f21d..b7cfab7 100644 --- a/graphic_components/sudoku_graphics.py +++ b/graphic_components/sudoku_graphics.py @@ -195,3 +195,24 @@ class NumberRing(BaseSudokuItem): def focusOutEvent(self, event): self.setVisible(False) + + +class PlayMenu(BaseSudokuItem): + buttonClicked = pyqtSignal() + + def __init__(self, parent): + super().__init__(parent=parent) + + self.rect = self.parent.boundingRect() + + def paint(self, painter, style, widget=None): + painter.setPen(self.default_pen) + painter.drawRect(self.rect.width()/2, self.rect.height()/2, + 100, 100) + def boundingRect(self): + return QRectF(self.rect.width()/2, self.rect.height()/2, + 100, 100) + + def mousePressEvent(self, ev): + self.setVisible(False) + self.buttonClicked.emit()