Т.е. в более обобщенном варианте мой вопрос звучит так:
Какова техника перехвата событий виджета, если этот виджет может быть составным.
Допустим, есть составной виджет cw (compound widget), на котором расположено 2 потомка cw_child1 и cw_child2.
Насколько я понимаю, если покрутить колесико мышки над cw_child1, то cw_child1 обработает это событие в функции event и возвратит "true if the event e was recognized and processed."
bool QWidget::event ( QEvent * event ) [virtual protected]
Reimplemented from QObject::event().
This is the main event handler; it handles event event. You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead.
Key press and release events are treated differently from other events. event() checks for Tab and Shift+Tab and tries to move the focus appropriately. If there is no widget to move the focus to (or the key press is not Tab or Shift+Tab), event() calls keyPressEvent().
Mouse and tablet event handling is also slightly special: only when the widget is enabled, event() will call the specialized handlers such as mousePressEvent(); otherwise it will discard the event.
This function returns true if the event was recognized, otherwise it returns false. If the recognized event was accepted (see QEvent::accepted), any further processing such as event propagation to the parent widget stops.
...
Если cw_child1 при обработке события возвратит True, то родитель cw так и не узнает, что это событие было. Разве что cw установит фильтр событий на cw_child1.
Так вот, а как установить правильно фильтр событий на cw, не зная составной ли это виджет и как его потомки обрабатывают события, чтобы перехватить события, скажем, мыши над ним ( и его потомками) ?