Qt即时响应来自keybaord的按键

时间:2018-04-12 21:39:20

标签: c++ qt

我正试图用键盘上的箭头键向左或向右移动一根棍子。下面的这段代码可以一步一步地完成,我的意思是,无论我是按住键盘上的左箭头还是我只是点击它,棒只移动5个单位。我想做的就是只要握住钥匙就移动它。

bool handled = false;
if ( e->type() == QEvent::KeyPress )
{
    QKeyEvent *keyEvent = (QKeyEvent *)e;

    if ( keyEvent->key() == Qt::Key_Left )
    {
        left= (= == 0 ? -5 : 0);
        handled = true;
    }
    else if ( keyEvent->key() == Qt::Key_Right )
    {
        right= (right== 0 ? 5 : 0);
        handled = true;
    }
}

我在QKeyEvent类中找不到一个方法,它可以为我想做的事情工作。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

为什么不使用QAction? 例如,按下左键按下:

$("#my-form").on("submit", function (ev) {
  ev.preventDefault();

  // Do AJAX stuff here
});

还有一个插槽

    QAction *action = new QAction("test", this);
    action->setShortcut(QKeySequence("Left"));

    this->addAction(action);

    this->connect(action, SIGNAL(triggered()), this, SLOT(left_button_slot()));