#python #events #matplotlib #tkinter
#python #Мероприятия #matplotlib #tkinter
Вопрос:
Я пытаюсь обработать некоторые события для выполнения взаимодействия пользователя со встроенными подзаголовками во фрейме Tkinter. Как в этом примере
Отлично работает с «key_press_event» и «button_press_event», но не работает с «pick_event».
Я изменил этот пример по ссылке, просто добавив следующий фрагмент кода после mpl_connect
вызова:
def on_button_press(event):
print('you pressed mouse button')
canvas.mpl_connect('button_press_event', on_button_press)
def on_pick(event):
print('you picked:',event.artist)
canvas.mpl_connect('pick_event', on_pick)
Почему «pick_event» не работает во встроенных графах? И как заставить его работать?
Мои подробные конфигурации:
- Windows 10
- Python 3.5 (версия conda)
- Matplotlib 1.5.3 установлен через pip
Заранее спасибо!
Ответ №1:
Ну, я решил это…
Для большинства событий нам просто нужно использовать mpl_connect
метод, чтобы волшебство произошло. Моя ошибка в том, что я не заметил, что нам нужно четко указать, что наш график «выбирается», вводя аргумент picker=True
, который запускает событие только при точном нажатии на исполнителя, и picker=x
где x
— целое число, которое является допуском пикселей для триггера. Итак, помимо изменений, которые я вставил для выбора в вопросе, мы должны заменить
a.plot(t, s)
для a.plot(t, s,picker=True)
или a.plot(t, s,picker=10)
, например
Комментарии:
1. Я заставил его работать с
axis = figure.add_subplot(1,1,1,picker=True)