通过检查GUI上的鼠标点击来检测PyQt中用户的空闲状态
我正在尝试实现一个功能,也就是如果用户在图形界面(GUI)上没有互动超过一段时间X,我就会停止一些功能。
现在我设置了一个时间戳,如果在X秒内没有点击任何按钮,图形界面就会终止某些功能。
button1.triggered.connect(keep_alive)
button2.triggered.connect(keep_alive)
....
buttonN.triggered.connect(keep_alive)
如你所见,这种方法并不是很优雅,而且当按钮数量增加时也不太好用。因此,我现在在研究另一种方法,就是监控鼠标点击。
mouse = app.mouseButtons()
if mouse != Qtcore.Qt.NoButton:
#keep_alive
我觉得这个方法有点小聪明,但它能实现我想要的功能。不过,我不知道怎么把这个方法放到QT的执行循环里。
任何建议都非常欢迎。
1 个回答
0
你需要通过重新实现 mousePressEvent
来拦截鼠标事件。
为了确保这不会影响你其他的功能,你需要把事件传递给父窗口。想了解更多细节,可以查看这个链接:点击这里
我建议在主窗口中实现这个功能,并确保所有的鼠标事件都能传递到这里。