From ec0289f55b61e684de63d04164b6c16a9502cc74 Mon Sep 17 00:00:00 2001 From: En Yi Date: Sat, 21 Jul 2018 08:24:04 +0800 Subject: [PATCH] Add keyboard support --- graphic_components/board.py | 1 + graphic_components/buttons.py | 2 +- graphic_components/sudoku_graphics.py | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/graphic_components/board.py b/graphic_components/board.py index 15c7ee1..2a5ad45 100644 --- a/graphic_components/board.py +++ b/graphic_components/board.py @@ -110,6 +110,7 @@ class GameBoard(BoxBoard): self.gamegrid.buttonClicked.connect(self.show_number_ring) self.numring.connect_button_signals(self.select_ring_number) + self.numring.keyPressed.connect(self.select_ring_number) self.gamegrid.setFocus(Qt.MouseFocusReason) diff --git a/graphic_components/buttons.py b/graphic_components/buttons.py index 0521053..874e553 100644 --- a/graphic_components/buttons.py +++ b/graphic_components/buttons.py @@ -152,7 +152,7 @@ class AnimBox(QGraphicsObject): super().hoverLeaveEvent(event) def mousePressEvent(self, event): - self.length = 0 + self.toggle_anim(False) self.buttonClicked.emit(self.text) diff --git a/graphic_components/sudoku_graphics.py b/graphic_components/sudoku_graphics.py index d5948dc..af6e324 100644 --- a/graphic_components/sudoku_graphics.py +++ b/graphic_components/sudoku_graphics.py @@ -226,6 +226,7 @@ class NumberRing(BaseSudokuItem): # TODO: Add functions to animated the ring appearing # TODO: Adjust the positioning of each element # TODO: Make it transparent when mouse is out of range + keyPressed = pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent=parent) @@ -314,6 +315,15 @@ class NumberRing(BaseSudokuItem): self.update() + def keyPressEvent(self, event): + txt = event.text() + if not txt == '' and txt in 'x123456789': + if txt == 'x': + txt = 'X' + print('keypress:', txt) + self.keyPressed.emit(txt) + self.clearFocus() + class PlayMenu(BaseSudokuItem): buttonClicked = pyqtSignal(str)