python - 用matplotlib区分单击和双击

标签 python matplotlib mouseevent double-click

我正在 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/

相关文章:

python - 颜色编码图 Python

c++ - 检查鼠标按钮是否在 C++ 中交换

python - 在 Python 中使用数量时消除单位

python - 尝试运行 Python 包时权限被拒绝

python - 如何将我的模块导入 python 控制台?

python - 如何在子图中设置 xticks

Python matplotlib 减小颜色条标签的大小

matlab - 在 MATLAB 中单击图像时从指针获取索引值

javascript - 检查鼠标指针周围哪一侧有更多空间

python - Django 中消息队列消费者放在哪里?