Мое мнение таково, что создание подклассов и переопределение функции keyPressEvent - это путь. Если по какой-либо причине вы действительно неблагоприятны для подклассов, вы, вероятно, можете использовать фильтр событий (см. QObject :: installEventFilter () и QObject :: eventFilter ()).