Enter/Return キーが押されたときに追跡してから、他のウィジェットに焦点を合わせたいのですが、押されていない場合は、スピンボックスが他のものではなく通常のアクションを実行する必要があります。QSpinBox をサブクラス化し、protected void keyPressEvent(QKeyEvent *event) を作成しました。その中には次のコードがあります:
void MytSpinBox::keyPressEvent(QKeyEvent *event) {
if (event->key() == Qt::Key_Return) {
qDebug() << "return pressed";
editingFinished();
} else {
qDebug() << "Other key";
event->accept();
}
}
このコードは機能するはずですが、機能しません。何が問題なのかわかりませんが、プロモートされたスピンボックスに注目して番号を変更しようとすると、うまくいかず、デバッグ メッセージが出力されるだけです。Enter/Return キーを押すと、デバッグ メッセージが出力され、editingFinished() で設定した他のウィジェットにフォーカスします。
私は何を間違っていますか?