【问题标题】:Working with matplotlib key events and modifiers使用 matplotlib 键事件和修饰符
【发布时间】:2013-01-15 13:49:54
【问题描述】:
import matplotlib
import matplotlib.pyplot as plt
print matplotlib.__version__
print plt.get_backend()

def key_event(e):
  print e.key

fig = plt.figure()
fig.canvas.mpl_connect('key_press_event', key_event)
plt.show()

我对 matplotlib/pyplot 中带有修饰符(例如 Ctrl、Alt、Shift)的按键事件处理程序感兴趣。 This 部分文档提到了对修饰符的一些支持。但是当我使用上面的代码时,我看不到这种行为。

我宁愿避免手动处理修饰符来维护有关这些按键/释放事件的状态;例如,我希望能够轻松区分 actrl+a ,而不必保持关于控制向上/向下的状态。

-我是否在某处缺少某些更高级别的界面,而修饰符只能在其中起作用?
- 或者当我通常使用 TkAgg 时,文档的那部分可能仅适用于 GTKAgg 后端?
- 也许对修饰符的支持可能是最近添加的,但不在我的 matplotlib 1.1.1rc 版本中?

【问题讨论】:

  • 添加matplotlib.use('TkAgg')(使用matplotlib 1.2)后在osx下对我来说很好。
  • 相关的提交在github.com/pelson/matplotlib/commit/…。因此,解决此问题的一种简单方法是检查版本的发布日期并与此提交的日期进行比较。

标签: python event-handling matplotlib modifier


【解决方案1】:

在看到上面的 mmgp 评论后,我尝试更新到存储库版本,git clone git://github.com/matplotlib/matplotlib.git 等,这给了我 1.3.x。 Ubuntu 12.10 中的版本回到 1.1.1rc。

这个问题在较新的版本中得到了解决,因此对修饰符的支持似乎只是最近添加的情况。

【讨论】:

  • 感谢您回复您的问题并提供解决方案!我有同样的问题,这解决了它。
猜你喜欢
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 1970-01-01
  • 2014-12-01
相关资源
最近更新 更多