使用matplotlib区分单击和双击

时间:2015-02-09 18:23:33

标签: python matplotlib mouseevent double-click

我正试图抓住单击并双击我的身材。

如另一个answer中所述,event包含event.dblclick,其中False或True,至少在版本1.4.2中,因此可以获得双击。

唯一的问题是,区分单击和双击并不容易,因为双击事件时会被触发两次。第一次是event.dblclick=False,第二次是event.dblclick=True

这有什么解决方案吗?我看到有关qt的同样问题已经讨论here

1 个答案:

答案 0 :(得分:2)

你需要一个软件去抖动器。

基本上,您在第一次点击时启动计时器。如果计时器用完,则继续处理单击事件。如果在计时器中检测到第二次单击,则处理双击事件。

如果需要,这实际上可以扩展为n次点击。我发现了三击事件的一些用途。

Here是在wxPython中实现的。应该相对容易移植到matplotlib。

另外,如果您使用的是Windows,我建议您使用用户的双击速度作为计时器(控制面板:鼠标)。您可以使用以下方式访问它:

get_double_click_time():
    """ Gets the Windows double click time in ms """
    from ctypes import windll
    return int(windll.user32.GetDoubleClickTime())

我还没想出如何从Mac或Linux中获取时间(但我也没有必要)。