我试图在我的图形上捕获单击和双击。 正如另一个答案中所述,event包含event.dblclick,至少在版本1.4.2中是False或True,因此可以获取双击。 唯一的问题是很难区分单击和双击,因为双击时事件会触发两次。第一次是event.dblclick=False,第二次是event.dblclick=True。 有没有解决这个问题的方法?我看到关于qt的同样问题在这里讨论。
您需要一个软件去抖动器。基本上,您在第一次点击时启动计时器。如果计时器运行完毕,则继续处理单击事件。如果在计时器内检测到第二次点击,则处理双击事件。如果需要的话,这实际上可以扩展到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时间(但我也没有这个需求)。