【问题标题】:Distinguish between single and double click with matplotlib使用 matplotlib 区分单击和双击
【发布时间】:2015-04-09 14:23:04
【问题描述】:
我正在尝试捕捉我的图上的单击和双击。
正如另一个answer 中所说,event 包含event.dblclick,即 False 或 True,至少在 1.4.2 版本中,因此可以双击。
唯一的问题是很难区分单击和双击,因为双击事件会触发两次。第一次是event.dblclick=False,第二次是event.dblclick=True。
有什么解决办法吗?我看到here讨论了关于qt的相同问题。
【问题讨论】:
标签:
python
matplotlib
mouseevent
double-click
【解决方案1】:
您需要一个软件去抖动器。
基本上,您在第一次点击时启动计时器。如果计时器用完,则继续处理单击事件。如果在计时器内检测到第二次单击,则处理双击事件。
如果需要,这实际上可以扩展为 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 中获取 dclick 时间(但我也不需要)。