Я использую Matplotlib с macosx
бэкэндом.Я следую примеру здесь , чтобы подключить простой обработчик событий:
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()
Что происходит?