Распространение событий в Qt
У меня есть только документация система событий Qt и QEvent
класс. Меня интересует поведение метода QObject::event()
. В документации указано:
Эта виртуальная функция принимает события к объекту и должна возвращать значение true, если событие e было распознано и обработано.
Каково ожидаемое поведение, когда false
возвращается из метода event()
? Что еще предпринимается для обработки события? Является ли событие автоматически перенаправлено на родительский объект?
Примечание. Я знаю, что источник доступен, и у меня есть копия. Я в идеале ищу некоторые части документации, посвященные этому поведению.
Ответы
Ответ 1
Я считаю, что наилучшей практикой является явное переадресация событий методу события базового класса, если вы не хотите фильтровать этот тип события (например, return QObject::event(event);
), поскольку функция события делегирует события определенным обработчикам (например, QWidget::keyPressEvent
).
QCoreApplication:: notify поддерживает события на основе возвращаемого значения. На true
он рассматривает событие как потребленное и останавливающееся. В противном случае событие передается родительскому объекту. Для получения дополнительной информации см. Другой взгляд на события.