当前位置: 代码迷 >> QT开发 >> 怎样获取界面最后一次操作的时间?解决办法
  详细解决方案

怎样获取界面最后一次操作的时间?解决办法

热度:231   发布时间:2016-04-25 03:01:44.0
怎样获取界面最后一次操作的时间?
问题是这样的。

需要做一个界面,应用开始的时候需要登录,登录后进入主界面;

当 界面 超过30分钟没有操作的时候,需要重新登录。

求大神解答
------解决思路----------------------
我以前用下面的方式处理这个问题:
1. 给 qApp 安装 event filter,然后有鼠标点击,key press 事件时记录事件发生时间为 lastActionTime。
2. 在 main window 的启动一个计时器,在 timer event 里用当前时间和 1 中记录的lastActionTime比较,如果大于30分钟的间隔就自动注销
------解决思路----------------------
如果是单界面的软件,那只需要mouseEvent和keyPress事件咯。

如果你的软件很复杂界面很多,甚至是分布式开发的,那你应该做一个键盘钩子 一个鼠标钩子(hook)监控整个进程,一但发现操作就产生记录,具体百度,很简单。
这要比你在所有可能发生操作的地方都加mouseEvent和keyEvents靠谱

当然,你也可以依靠良好的设计和代码管理来实现,所有界面上的操作都影响mouseEvents。
  相关解决方案