попробуй.
1. Установить глобальный перехват Events для Application
QCoreApplication::instance()->installEventFilter(this);
2. таймер
int inactiveTime = 60*1000;
QTimer * timerInactive = new QTimer(this);
connect(timerInactive, SIGNAL(timeout()), this, SIGNAL(inactiveTimeout()));
timerInactive->setInterval(inactiveTime);
timerInactive->start();
3. в процедуре обработки event
bool MyObject::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress || event->type() == QEvent::MouseMove ||
event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease)
{
if (timerInactive->isActive())
timerInactive->start();
}
return false;
}
Соответсвенно если в течении inactiveTime мс не нажимались клавиши и не двигалась-клацалачь мышь будет сигнал inactiveTimeout
У меня работает Linux, Win