Matplotlib key_press_event никогда не запускается в бэкэнде macosx - PullRequest
0 голосов
/ 29 ноября 2018

Я использую 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()

Что происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...