среда, 6 февраля 2013 г.

Глобальный перехват событий

Если нужно поставить глобальный обработчик на все события то нужно переопределить метод
virtual boolnotify ( QObject * receiver, QEvent * e )

класса QApplication.
Например, если мы хотим перехватить все перемещения мышки, то нам поможет такой класс

class MyApp : public QApplication
{
public:
   MyApp(int & argc, char ** argv) : QApplication(argc, argv) {}
   
   virtual bool notify(QObject * receiver, QEvent * e)
   {
      if (e->type() == QEvent::MouseMove)
      {
         //обрабатываем событие
      }
      return QApplication::notify(receiver, e);
   }
};

2 комментария: