Как обнаружить пользовательскую неактивность в QT?

Как я могу обнаружить пользовательскую неактивность в QT QMainWindow? Моя идея до сих пор состоит в том, чтобы иметь QTimer, который увеличивает счетчик, который, если определенное значение передается, блокирует приложение. Любая мышь или ключевое взаимодействие должны задержать таймер к 0. Однако я должен знать, как правильно обработать входные события, которые сбрасывают; я могу повторно реализовать:

virtual void keyPressEvent(QKeyEvent *event)
virtual void keyReleaseEvent(QKeyEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)

... но не будут обработчики событий всех виджетов в QMainWindow предотвращать события, происходящие в тех средствах управления от достижения QMainWindow? Существует ли лучшая архитектура для обнаружения пользовательского действия, как это?

5
задан Jake Petroules 27 July 2010 в 07:52
поделиться