通过检查GUI上的鼠标点击来检查PyQt中的用户空闲状态

时间:2014-05-28 23:55:26

标签: python qt user-interface pyqt

我正在尝试实现一个功能,如果用户在一段时间内没有与GUI交互,我将停止GUI的某些功能。

目前我已设置时间戳,以便在X秒内未点击任何按钮时,GUI将终止某些功能

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

我认为这有点hacky,但它适用于我设想的功能,但是,我不知道如何将其插入到QT的执行循环中。

任何建议都将受到赞赏

1 个答案:

答案 0 :(得分:0)

您必须通过重新实现mousePressEvent来拦截鼠标事件。

http://qt-project.org/doc/qt-4.8/qwidget.html#mousePressEvent

要确保它不会影响您的其他功能,您需要将其传播到父窗口小部件。阅读更多详情:http://blog.qt.digia.com/blog/2006/05/27/mouse-event-propagation/

我将继续在主窗口中实现它,并确保所有鼠标事件都传播到它。