我正在创建一个应用程序,其中“向左键+向下键”按下具有不同的行为(与第一个左箭头和然后的左箭头不同),当前在keyPressEvent事件中,我要在两个单独的调用中一个一个地获取它们。

有什么方法可以在一个键盘事件中获得多个按键?

最佳答案

我通过下面的代码解决了这个问题。

QSet<Qt::Key> keysPressed;

void Widget::keyPressEvent(QKeyEvent * event) {
    m_bFirstRelease = true;
    keysPressed+= event->key();
}

void Widget::keyReleaseEvent(QKeyEvent *) {
    if(m_bFirstRelease) {
        processMultiKeys(keysPressed);
    }
    m_bFirstRelease = false;
    keysPressed-= event->key();
}

关于qt - 如何在单个事件中获得多个按键?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7176951/

10-10 08:40