我正在尝试捕获对我的人物的单击和双击。
正如另一篇文章中所说answer https://stackoverflow.com/a/17753195/4537483, the event
包含event.dblclick
这是 False 或 True,至少在 1.4.2 版本中是这样,所以可以得到双击。
唯一的问题是很难区分单击和双击,因为双击时事件会被触发两次。第一次是和event.dblclick=False
第二次是与event.dblclick=True
.
有什么办法解决这个问题吗?我看到有人讨论了有关 qt 的相同问题here https://stackoverflow.com/questions/4627347/distinguish-between-single-and-double-click-events-in-qt.
您需要一个软件去抖动器。
基本上,您在第一次单击时启动计时器。如果计时器超时,则继续处理单击事件。如果在计时器内检测到第二次单击,则处理双击事件。
如果需要的话,这实际上可以扩展到n次点击。我发现了三次单击事件的一些用途。
Here https://stackoverflow.com/a/20992288/1354930是在 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 时间(但我也没有必要)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)