gpt4 book ai didi

qt - 子类中是否需要调用基类的事件处理器?

转载 作者:行者123 更新时间:2023-12-04 07:26:08 25 4
gpt4 key购买 nike

假设我在我的子类中重新实现了 QWidget::keyPressEvent(QKeyEvent *e)

有必要在最后调用基类的实现吗?

例子:

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

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

如果是这样,这样做的意义何在?

最佳答案

如果您不对事件采取行动,您应该始终将事件传递给基类的实现,因为它可能会对其采取行动,或者可能为其安装了事件过滤器。例如,如果用户按 Esc,QWidget 的默认实现会关闭弹出窗口小部件。因此,为确保不破坏任何事件处理,请始终将事件传递给基类,除非您对它们采取行动。

关于qt - 子类中是否需要调用基类的事件处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14580654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com