如何忽略不输出字符的按键事件

时间:2012-09-25 12:06:27

标签: qt

我正在开发一种虚拟音乐键盘,可让您按键盘上的按键并让它播放音符。所以在我的MainWindow类中,我重新实现了keyPressEvent。我想忽略修饰符(Control,Alt,Shift等)生成的事件,以及其他非字符键(如Tab,Backspace和Enter)生成的事件。这样的事情是理想的:

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    if (!event->key().isCharacter()))
    {
        event->ignore();
        return;
    }

    // handle the event
}

有没有办法做这样的事情(没有单独测试每个可能的非字符键)?如果没有,如果它是修饰符,至少有一种方法可以轻易忽略该事件吗?

1 个答案:

答案 0 :(得分:5)

看起来你想要QKeyEvent::text()