Come posso rilevare l'inattività dell'utente in una Qt QMainWindow? La mia idea è di avere un QTimer che incrementa un contatore, che, se viene passato un determinato valore, blocca l'applicazione. Qualsiasi interazione con il mouse o il tasto dovrebbe riportare il timer su 0. Tuttavia, ho bisogno di sapere come gestire correttamente gli eventi di input che si resettano; Posso re-implementare:Come rilevare l'inattività dell'utente in 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)
... ma i gestori di eventi di tutti i widget nella QMainWindow non impedirà eventi che si verificano in quei controlli di raggiungere la QMainWindow del? Esiste un'architettura migliore per rilevare l'attività degli utenti così com'è?
Funziona alla grande, grazie. Ho finito per emettere un segnale con il parametro obj in cui hai "resetMyTimer" e ogni finestra ha collegato il segnale al suo slot del timer di reset, che controlla se un widget su * that * ha generato l'evento in modo che ogni finestra si blocchi in modo indipendente degli altri. –
L'evento sembra essere solo inviato a eventFilter() se nessuno dei widget figli gestisce l'evento. C'è un modo per garantire che tutti gli eventi vadano a questo filtro prima di essere elaborati altrove? – KyleL