Как я могу обнаружить неактивность пользователя в Qt QMainWindow? Моя идея до сих пор заключается в том, чтобы иметь QTimer, который увеличивает счетчик, который, если определенное значение передается, блокирует приложение. Любое взаимодействие с мышью или ключом должно установить таймер на 0. Однако мне нужно знать, как правильно обрабатывать события ввода, которые перезагружаются; Я могу повторно реализовать:Как обнаружить неактивность пользователя в Qt?
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-х? Есть ли лучшая архитектура для обнаружения активности пользователя, какой она есть?
Отлично работает, спасибо. Я закончил тем, что излучал сигнал с параметром obj, где у вас есть «resetMyTimer», и каждое окно прикрепляло сигнал к слоту таймера сброса, который проверяет, не виден ли виджет в * этом * окне, поэтому каждое окно блокируется независимо других. –
Событие, по-видимому, отправляется только eventFilter(), если ни один из дочерних виджетов не обрабатывает указанное событие. Есть ли способ обеспечить, чтобы все события переходили в этот фильтр, прежде чем обрабатываться в другом месте? – KyleL