我正在 try catch 对我的图形的单击和双击。
如另一个 answer 所述, event
包含 event.dblclick
是 False 或 True,至少在 1.4.2 版本中,所以双击可以得到。
唯一的问题是不容易区分单击和双击,因为双击事件会被触发两次。第一次使用 event.dblclick=False
,第二次使用 event.dblclick=True
。
有什么解决办法吗?我看到讨论了关于 qt 的相同问题 here .
最佳答案
您需要一个软件去抖器。
基本上,您会在第一次点击时启动计时器。如果计时器用完,则继续处理单击事件。如果在计时器内检测到第二次单击,则处理双击事件。
如果需要,这实际上可以扩展到 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 获取点击时间(但我也不需要)。
关于python - 用matplotlib区分单击和双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416662/