【问题标题】: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 时间(但我也不需要)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      相关资源
      最近更新 更多