Пример #1
0
class MainWindow(MyQMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()

        grid_layout = QGridLayout()

        main_layout = QVBoxLayout()
        self.score_label = QLabel()
        self.score_label.setText("Score: 0")
        grid_layout.addWidget(self.score_label, 0, 0)

        # Game
        self.game = Game()
        self.view = QWidget()
        main_layout.addWidget(self.game)
        # Button
        self.reset_button = QPushButton('Reset', self)
        self.reset_button.clicked.connect(self.reset_clicked)
        self.reset_button.setStyleSheet("background-color: red")
        self.reset_button.setFocusPolicy(QtCore.Qt.NoFocus)
        grid_layout.addWidget(self.reset_button, 0, 1)

        main_layout.addLayout(grid_layout)
        self.game.end_signal.connect(self.end)
        self.game.score_signal.connect(self.change_score)
        self.view.setLayout(main_layout)
        self.setCentralWidget(self.view)
        self.try_again = None

    def end(self, value):
        if value == 1:
            self.try_again = TryAgainWin()
            self.try_again.try_again_sig.connect(self.try_again_handle)
            self.try_again.get_user_in()

    def try_again_handle(self, value):
        if value == 1:
            self.try_again.close()
            self.view.clicked_reset()

    def change_score(self, score):
        self.score_label.setText(f"Score: {score}")

    def reset_clicked(self):
        self.game.reinit_game()