我正试图抓住单击并双击我的身材。
如另一个answer中所述,event
包含event.dblclick
,其中False或True,至少在版本1.4.2中,因此可以获得双击。
唯一的问题是,区分单击和双击并不容易,因为双击事件时会被触发两次。第一次是event.dblclick=False
,第二次是event.dblclick=True
。
这有什么解决方案吗?我看到有关qt的同样问题已经讨论here。
答案 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中获取时间(但我也没有必要)。