Qt中的事件传播

时间:2011-05-09 19:48:29

标签: qt qt-events

我只是关于the Qt event systemQEvent class的文档。我对QObject::event()方法的行为感兴趣。文档说明:

  

此虚函数接收对象的事件,如果识别并处理了事件e,则应返回true。

false方法返回event()时的预期行为是什么?还有什么办法来处理这个事件?事件是否自动转发到父对象?

注意:我知道源代码可用,而且我有副本。我理想地寻找一些解决这种行为的文档。

2 个答案:

答案 0 :(得分:6)

我认为,如果您不希望过滤该事件类型(例如return QObject::event(event);),则最佳做法是将事件显式转发给基类事件方法,因为事件函数将事件委托给特定处理程序(例如QWidget::keyPressEvent)。

QCoreApplication::notify根据返回值传播事件。在true上,它将事件视为已消耗并停止。否则,事件将传递给对象的父级。有关详情,请参阅Events and FiltersAnother Look at Events

答案 1 :(得分:0)

一些事件可以被传播,事件将被递归传播给它的父和父,直到被处理为止。看看这个:https://doc.qt.io/archives/qq/qq11-events.html