Change button signals connection

master
En Yi 2018-07-14 14:48:45 +08:00
parent 5d8599a06a
commit 7ea8eab07b
2 changed files with 11 additions and 6 deletions

View File

@ -44,6 +44,7 @@ class TimerDisplayer(QGraphicsWidget):
class DifficultyDisplayer(QGraphicsWidget): class DifficultyDisplayer(QGraphicsWidget):
notFocus = pyqtSignal() notFocus = pyqtSignal()
difficultySelected = pyqtSignal(str)
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__() super().__init__()
@ -78,6 +79,8 @@ class DifficultyDisplayer(QGraphicsWidget):
self.setFlag(QGraphicsItem.ItemIsFocusable, True) self.setFlag(QGraphicsItem.ItemIsFocusable, True)
self.diff_menu.menuClicked.connect(self.selected_difficulty) self.diff_menu.menuClicked.connect(self.selected_difficulty)
self.diff_menu.menuClicked.connect(self.difficultySelected.emit)
def paint(self, painter, style, widget=None): def paint(self, painter, style, widget=None):
painter.setPen(self.box_pen) painter.setPen(self.box_pen)
@ -94,10 +97,6 @@ class DifficultyDisplayer(QGraphicsWidget):
self.diff_menu.setVisible(False) self.diff_menu.setVisible(False)
self.notFocus.emit() self.notFocus.emit()
def connect_buttons_signal(self, func):
self.diff_menu.menuClicked.connect(func)
print('Diff buttons connected')
def selected_difficulty(self, string): def selected_difficulty(self, string):
self.diff_menu.setVisible(False) self.diff_menu.setVisible(False)
self.set_text(string) self.set_text(string)
@ -110,6 +109,10 @@ class DifficultyDisplayer(QGraphicsWidget):
def focusOutEvent(self, event): def focusOutEvent(self, event):
print('Menu lose focus') print('Menu lose focus')
self.notFocus.emit() self.notFocus.emit()
#self.diff_menu.setVisible(False)
def boundingRect(self):
return QRectF(0, 0, self.width, self.height)
class DifficultyMenu(QGraphicsWidget): class DifficultyMenu(QGraphicsWidget):
@ -120,7 +123,6 @@ class DifficultyMenu(QGraphicsWidget):
super().__init__(parent=parent) super().__init__(parent=parent)
self.diff_buttons = [] self.diff_buttons = []
#self.difficulty = ['Very Easy', 'Easy', 'Normal', 'Hard', 'Insane']
self.btn_height = height self.btn_height = height
self.btn_width = width self.btn_width = width
self.height = (self.btn_height + 10) * 5 self.height = (self.btn_height + 10) * 5
@ -132,5 +134,8 @@ class DifficultyMenu(QGraphicsWidget):
btn.buttonClicked.connect(self.clicked_on) btn.buttonClicked.connect(self.clicked_on)
self.diff_buttons.append(btn) self.diff_buttons.append(btn)
def boundingRect(self):
return QRectF(0, 0, self.width, self.height)
def clicked_on(self, string): def clicked_on(self, string):
self.menuClicked.emit(string) self.menuClicked.emit(string)

View File

@ -48,7 +48,7 @@ class SudokuWindow(QGraphicsView):
self.gameboard.newGameSelected.connect(lambda: self.menuboard.show_children(True)) self.gameboard.newGameSelected.connect(lambda: self.menuboard.show_children(True))
self.gameboard.newGameSelected.connect(self.menuboard.set_difficulty_text) self.gameboard.newGameSelected.connect(self.menuboard.set_difficulty_text)
self.menuboard.diff_display.notFocus.connect(self.gameboard.game_refocus) 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): def resizeEvent(self, event):
self.fitInView(self.scene.sceneRect(), Qt.KeepAspectRatio) self.fitInView(self.scene.sceneRect(), Qt.KeepAspectRatio)