IMEが有効になっていると、keyPressEventが来なくなるようです。IMEを無効にするには、
setAttribute( Qt::WA_InputMethodEnabled, false );
http://doc.qt.nokia.com/latest/qt.html#WidgetAttribute-enum
で良さそうに見えるんですが、さっぱり無効化してくれません(涙)。フォーカスのあるWidgetのIMEが無効 (英語入力のみ) になるフラグ、という事じゃないんでしょうか……。昔は QWidget::setInputMethodEnabled() なんてものがあったようです。
補足
QLineEdit に setAttribute( Qt::WA_InputMethodEnabled, false ); すると、ASCII文字以外が弾かれるようになるんですね。入力コントロールの配置されてない Widget (プレーンなDialogとか) に対して、IMEの切り替え (A ← → あ) 自体できない (常に A になる) ようにしたいので、ちょっと違うかも…。
補足2
問題あるのはWindowsだけなので、ちょっと嫌ですが Win32 API を呼んで無効にするのが良さそうですね。
(*.pro)
win32:LIBS += -limm32
#ifdef Q_WS_WIN
#include <qt_windows.h>
ImmAssociateContext( (HWND)winId(), NULL );
#endif