matplotlib множественные подключения к обработчику событий ?

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 .__ версия __ - 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+ (по умолчанию, октябрь 4 2011, 20:06:09) [GCC 4.6.1]

10
задан wim 14 December 2011 в 23:22
поделиться