我正在开发一种虚拟音乐键盘,可以让你按下键盘上的按键并让它弹奏音符.所以在我的MainWindow类中,我重新实现了keyPressEvent.我想忽略修饰符(Control,Alt,Shift等)生成的事件,以及其他非字符键(如Tab,Backspace和Enter)生成的事件.这样的事情是理想的:
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if (!event->key().isCharacter()))
{
event->ignore();
return;
}
// handle the event
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做这样的事情(没有单独测试每个可能的非字符键)?如果不是,如果它是修饰符,至少有一种方法可以轻易忽略该事件吗?