#ifndef MAINWINDOW_H #define MAINWINDOW_H #include class QPushButton; class EventLogger : public QObject { Q_OBJECT public: EventLogger(); private: bool eventFilter(QObject * /*pWatched*/, QEvent *pEvent) override; signals: void log(const QString &); }; class EventFilter : public EventLogger { public: EventFilter(QPushButton *pPushButton); private: bool eventFilter(QObject *pWatched, QEvent *pEvent) override; private: QPushButton *m_pButton; }; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: }; #endif // MAINWINDOW_H