void MainWindow::keyPressEvent(QKeyEvent *event) { Figure newFig = *cur_figure; switch(event->key()){ case Qt::Key_Up:{ newFig.rotate(); break; } case Qt::Key_Down: { newFig.setPosition(cur_figure->getPosition().x(), cur_figure->getPosition().y() + 1); break; } case Qt::Key_Left: { newFig.setPosition(cur_figure->getPosition().x() - 1, cur_figure->getPosition().y()); break; } case Qt::Key_Right: { newFig.setPosition(cur_figure->getPosition().x() + 1, cur_figure->getPosition().y()); break; } default: { QMainWindow::keyPressEvent(event); } } if (m_cup.hasPlace(newFig)) { delete cur_figure; cur_figure = new Figure(newFig); } draw(); }