3

サブクラスQWidget::keyPressEvent(QKeyEvent *e)で再実装したとします。

最後に基本クラスの実装を呼び出す必要がありますか?

例:

MyWidget::keyPressEvent(QKeyEvent *e)
{
    // my event handler...

    // now call parent event handler, necessary?
    QWidget::keyPressEvent(e);
}

もしそうなら、それをする意味は何ですか?

4

1 に答える 1

6

イベントに対処しない場合は、基本クラスの実装にイベントを渡す必要があります。そうしないと、イベント フィルターがインストールされている可能性があります。QWidgetたとえば、デフォルトの実装では、ユーザーが Esc キーを押すとポップアップ ウィジェットが閉じます。そのため、イベント処理を中断しないようにするには、イベントに対処しない限り、常にイベントを基本クラスに渡します。

于 2013-02-02T22:11:56.040 に答える