1

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

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

    // handle the event
}

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

4

1 回答 1

5

看起来像你想要QKeyEvent::text()的。

于 2012-09-25T12:19:58.890 回答