使用matplotlib区分单击和双击

3

我试图在我的图形上捕获单击和双击。

正如另一个答案中所述,event包含event.dblclick,至少在版本1.4.2中是False或True,因此可以获取双击。

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

有没有解决这个问题的方法?我看到关于qt的同样问题在这里讨论。

1个回答

3
您需要一个软件去抖动器。
基本上,您在第一次点击时启动计时器。如果计时器运行完毕,则继续处理单击事件。如果在计时器内检测到第二次点击,则处理双击事件。
如果需要的话,这实际上可以扩展到n次点击。我已经发现了三次点击事件的某些用途。 这里是使用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中获取dclick时间(但我也没有这个需求)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接