我正在将Matplotlib与macosx
后端一起使用。我正在按照示例here连接一个简单的事件处理程序:
import matplotlib.pyplot as plt
def _on_keypress(event):
print('Hit on_keypress()')
plt.connect('key_press_event', _on_keypress)
# Call plt.plot() a few times ...
plt.show()
当我从终端运行此脚本时,会显示一个数字,但按键会显示终端中的已按下键,并且从未调用_on_keypress
。
似乎绘图窗口没有以某种方式聚焦?但是,无论我单击该图还是该终端,我都会得到相同的行为(字符进入终端)。
如果打开调试器,则可以确认处理程序已附加到画布上:
(Pdb) fig = plt.gcf()
(Pdb) fig.canvas.key_press_event('a')
Hit on_keypress()
这是怎么回事?