如何检测GUI应用程序已经空闲(即没有用户交互)一段时间?我有n个Qt屏幕,当应用程序空闲5秒钟时,我想要显示日期时间屏幕,并且当我点击日期时间屏幕时,它应该返回到上一个屏幕。目前我正在使用以下代码,现在如何检查系统是否空闲5秒钟并带来一个新的窗体,当有人鼠标移动/点击它应该返回到上一个窗体。
感谢您的选择。
CustomEventFilter::CustomEventFilter(QObject *parent) :
QObject(parent)
{
m_timer.setInterval(5000);
connect(&m_timer,SIGNAL(timeout()),this,SLOT(ResetTimer()));
}
bool CustomEventFilter::eventFilter(QObject *obj, QEvent *ev)
{
if(ev->type() == QEvent::KeyPress ||
ev->type() == QEvent::MouseMove)
{
ResetTimer();
return QObject::eventFilter(obj, ev);
}
else
{
}
}
bool CustomEventFilter::ResetTimer()
{
m_timer.stop(); // reset timer
}
我的main.cpp文件看起来像这样:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainForm w;
w.show();
CustomEventFilter filter;
a.installEventFilter(&filter);
return a.exec();
}
感谢您的选择。