http://qt-project.org/doc/qt-5/qwidget.html#keyPressEvent
QKeyEvent は isAccepted() == true で始まることに注意してください。そのため、QKeyEvent::accept() を呼び出す必要はありません。キーを操作する場合は基本クラスの実装を呼び出さないでください。
http://qt-project.org/doc/qt-5/qkeyevent.html#details
キー イベントには、レシーバーがキー イベントを処理するかどうかを示す特別な受け入れフラグが含まれています。キーの押下またはリリース イベントがウィジェットで処理されない場合は、ignore() を呼び出す必要があります。キー イベントは、ウィジェットが accept() でそれを受け入れるか、イベント フィルターがそれを消費するまで、親ウィジェット チェーンに伝搬されます。マルチメディア キーのキー イベントは、デフォルトでは無視されます。ウィジェットがこれらのイベントを処理する場合は、accept() を呼び出す必要があります。
それは少し混乱します。受け入れるかどうかを呼び出す必要がありますか? 処理しない場合は、基本実装を呼び出すか、無視を呼び出す必要がありますか?
最初のページでは、accept() を呼び出す必要はありません。
基本バージョンを呼び出すと、QWidget の場合は基本的に ignore() が呼び出されます。それは私のkeyPressedEventに戻り、無視された状態で戻り、QWidgetのバージョンが再び呼び出されて「キーイベントが親ウィジェットに伝播される」ことを意味しませんか?