keyReleaseが勝手に発行される

キーボードを押した時、keyPressイベントが発行されますが、押し続けていると「オートリピート」という状態になり、キーを離してないのにkeyReleaseイベントも発行されてしまいます。keyReleaseイベントがオートリピートで起きたのか否かは、isAutoRepeatで判断できます。

void MainWindow::keyReleaseEvent( QKeyEvent* event )
{
  // オートリピートで自動発行された場合は、抜ける
  if (event->isAutoRepeat()) return;

  ui->label->setText( tr("key release") );
}