Qt czas jaki upłynał od ostatniego naciśniecia klawisza na klawiaturze

0

Chciałem wyświetlić komunikat jak aplikacje nie jest używana za pomocą klawiatury po 5 minutach a po 6 minutach zamknąć system

Pierwsza koncepcja QCoreApplication::installNativeEventFilter
Na Windows to działa poprawnie , dostaje komunikaty WM_KEYDOWN i kazdy klawisz sie pojawia w QAbstractNativeEventFilter::nativeEventFilter
Na moim Linux embedded nie mam niestety XCB albo nie wiem jak to włączyć w Qt i nic sie nie dzieje w QAbstractNativeEventFilter::nativeEventFilter :(

Ktoś może ma pomysł jak sprawdzić ile czasu minęło od ostatniego naciśnięcia przycisku klawiatury ?

1

a co nie tak z regularnym event filter?
https://doc.qt.io/qt-6/qobject.html#installEventFilter

0

installEventFilter ma dla mnie wadę bo musiał bym dla kazdego obiektu GUI który moze miec fokus ustawić installEventFilter aby mieć 100% pewność że klawisz trafi do mojej funkcji
albo jeszcze nie wiem jak to ustawić globalnie dla całęgo okna i wszystkich komponentów w oknie , albo dla całej aplikacji

1

Trzeba go zainstalować na QApplication i będziesz widział wszystko.

0

działa, co prawda mam zagwostkę dlaczego klawisze użyte w QShortcut już sie nie pojawiaja.

jeszcze dokumentacja do kompletu
https://doc.qt.io/qt-6/eventsandfilters.html

It is also possible to filter all events for the entire application, by installing an event filter on the QApplication or QCoreApplication object. Such global event filters are called before the object-specific filters. This is very powerful, but it also slows down event delivery of every single event in the entire application; the other techniques discussed should generally be used instead.

1 użytkowników online, w tym zalogowanych: 0, gości: 1