如何检测GUI应用程序何时闲置(即无用户交互)一段时间?如何在应用程序本身(Qt)内检测Qt GUI应用程序是否已经空闲?
我有n个Qt屏幕,我想在应用程序闲置5秒时带上日期时间屏幕,当我点击日期时间屏幕时,它应该返回到最后一个屏幕。
目前我正在使用下面的代码,现在如何检查系统是否闲置5秒,带来一个新的窗体,当某些body mousemove/click它应该返回到最后一个窗体。
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();
}
感谢。
显示/关闭表单有什么问题? – Macke
您需要在您的问题/反馈中更具建设性,而不仅仅是“给我代码plz”和“不工作,帮助?”。我们不能做所有的工作,我们也不够聪明,除非你学会如何提供更多关于你的问题的信息,否则我们不能够弄清楚什么有效,什么不可行。 – Macke
@Macke:谢谢麦凯。下次在SO中提问时,我会牢记在心。 – user662285