def __init__(self): QMainWindow.__init__(self) Ui_MainWindow.__init__(self) self.setupUi(self) # Important property that deletes all widgets (including QTimer) # on close. self.setAttribute(Qt.WA_DeleteOnClose) # Variables self.end = False self.timer_interval = 350 self.key = Qt.Key_Up self.snake = create_snake() self.scene = QGraphicsScene() self.squares_xy, squares = create_squares(9, 9) self.bonuses = create_bonuses(self.snake, self.squares_xy) '''Timer is used to repeat self.turn_loop and detect if key was changed. It is stopped by default and starts after self.start() is called.''' self.timer = QTimer(self) self.draw_field(self.bonuses, squares, self.snake) self.QGraph_field.setScene(self.scene) self.print_text(print_main()) # Connecting signals to slots self.QBut_main.clicked.connect(lambda: self.print_text(print_main())) self.QBut_reset.clicked.connect(self.reset) self.QBut_rules.clicked.connect(lambda: self.print_text(print_rules())) self.QBut_start.clicked.connect(self.start) self.timer.timeout.connect(self.turn_loop)
def reset(self): self.timer.stop() self.end = False self.key = Qt.Key_Up self.snake = create_snake() self.squares_xy, squares = create_squares(9, 9) self.bonuses = create_bonuses(self.snake, self.squares_xy) self.scene.clear() self.draw_field(self.bonuses, squares, self.snake) self.print_text(print_main())