Задать вопрос

Как в QT делать перехват клавиатуры?

Представим, что у меня есть картинка, я хочу ее двигать по нажатию клавиши на клавиатуре. Возможно мне нужно пользоваться слотами, но как дать компу понять, что нажата та или иная клавиша:D
  • Вопрос задан
  • 7803 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@DancingOnWater
Во всеъ графических классах Qt в protected области различные -event методы.
по умолчанию event пробрасывается в дочерний класс. Вам нужно переопределить подходящий метод. За всем остальным сюда: doc.qt.io/qt-5/eventsandfilters.html
Ответ написан
Комментировать
Zifix
@Zifix Куратор тега Qt
Barbatum
Добавляем в свой класс метод keyPressEvent, и сами вызываем соответствующие методы/слоты, которые будут двигать изображение:
void MainWindow::keyPressEvent(QKeyEvent *e)
{
    switch (e->key()) {
    case Qt::Key_Up:
        _image->up();
        break;
    case Qt::Key_Down:
        _image->down();
        break;
    case Qt::Key_Left:
        _image->left();
        break;
    case Qt::Key_Right:
        _image->right();
        break;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы