import sys
import matplotlib
import matplotlib.pyplot as plt
print matplotlib.__version__, matplotlib.get_backend()
def hit(event):
sys.stderr.write('hit\n')
fig = plt.figure()
cid0 = fig.canvas.mpl_connect('key_press_event', hit)
cid1 = fig.canvas.mpl_connect('button_press_event', hit)
print cid0, cid1
plt.show()
С помощью приведенного выше кода, почему у меня не может быть как нажатия на кнопку мыши, так и нажатия клавиш нажатия клавиш? Кажется, что в приведенном выше порядке работают только ключевые события прессования, тогда как если я поменяю строки 10 и 11 вокруг (порядок cid0 и cid1), тогда будут работать только события мыши. То есть в зависимости от того, какой из них я подключил, сначала запускает обработчик событий. Является ли это встроенным ограничением matplotlib, или я пытаюсь подключить несколько событий не так?
изменить с дополнительной информацией. Мой matplotlib.__version__
- 1.1.0
. Я пробовал с GTKAgg
и TkAgg
бэкендами с тем же результатом. Использование python и ipython, с или без -wthread -pylab
, ipython qtconsole --pylab=inline
, не имеет значения. Идентификаторы соединения, которые я получаю, являются cid0 == cid1 == 6
.
edit 2. Моя проблема по-прежнему сохраняется сегодня с версией matplotlib 1.2.x
и TkAgg
, sys.version 2.7.2+ (default, Oct 4 2011, 20:06:09) [GCC 4.6.1]