Получение событий нажатия клавиш в matplotlib с block = False - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть скрипт, который примерно выполняет следующее

def press(event):
    print('Ran')

fig, ax = plt.subplots()
fig.canvas.mpl_connect('key_press_event', press)
plt.show(block=False)
...
(other code runs)

Я бы хотел, чтобы matplotlib продолжал получать и отвечать на события нажатия клавиш после вызова plt.show, но при вызове с block = False,фигура перестает отвечать на события нажатия клавиш.Это работает, когда я просто делаю plt.show(), поэтому я предполагаю, что созданное окно каким-то образом перестает существовать, что означает, что оно больше не слушает события.Если я добавлю plt.pause(5), то он обрабатывает события в течение 5 секунд, а затем останавливается (а также ни один из кодов после того, как он выполняется в течение 5 секунд, что противоречит цели).

Для сценария важно, чтобы мы вызывали сplt.show (блок = False).Грубо говоря, этот plt.show является частью другого цикла событий, и нам нужно показать, что мы хотим в matplotlib, не блокируя выполнение остальной части кода, но с обработкой событий нажатия клавиш.

У кого-нибудь есть советыкак это сделать?

...