C++ (Qt)bool KeyPressEater::eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); qDebug("Ate key press %d", keyEvent->key()); return true; } else { // standard event processing return QObject::eventFilter(obj, event); } }
Pythonclass Filter( qtc.QObject ): def eventFilter(self, obj, event): if event.type() == 2: # MouseЗкуыыEvent print 'mouse press' return True else: return qtc.QObject.eventFilter( self, obj, event )
Pythonclass Filter( qtc.QObject ): def eventFilter(self, obj, event): if event.type() == 2: # MouseЗкуыыEvent print 'mouse press' return qtc.QObject.eventFilter( self, obj, event )
bool CMyApp::notify ( QObject * receiver, QEvent * event ) { if (event->type() == QEvent::MouseMove && receiver->inherits("CMyWidget")) { QPoint p = ((QMouseEvent*)event)->globalPos(); QWidget* newReceiver = widgetAt(p); // найдём того, кто лежит под виджетом if (newReceiver) // а таки лежит { receiver = newReceiver; // переправим событие нижележащему } } return QApplication::notify(receiver,event);}