说我在我的子类中重新实现了QWidget::keyPressEvent(QKeyEvent *e)
。
是否有必要在最后调用基类的实现?
示例:
MyWidget::keyPressEvent(QKeyEvent *e)
{
// my event handler...
// now call parent event handler, necessary?
QWidget::keyPressEvent(e);
}
如果是这样,有什么意义呢?
答案 0 :(得分:5)
如果您不对事件采取行动,则应始终将事件传递给基类的实现,因为它可能会对其执行操作,或者可能为其安装了事件过滤器。例如,QWidget
的默认实现会在用户按下Esc时关闭弹出窗口小部件。因此,为了确保不破坏任何事件处理,请始终将事件传递给基类,除非您对它们采取行动。