У меня есть графический интерфейс с множеством вкладок, на которых я строю данные.
Я создал событие мыши (щелчок правой кнопкой мыши, левый, я использую его для нажатия на панель навигации и другие вещи)
так что, когда я нажимаю на сигналы, которые я строю, я получаю (x,y)
вот событие мыши
from matplotlib import pyplot as plt
import pdb
class MouseEvent:
def __init__(self,canvas):
self.canvas = canvas
self.xs = {}
self.ys = {}
self.cid = self.canvas.canvas.mpl_connect('button_press_event', self)
def __call__(self, event):
if event.button == 3: #right button
#if event.inaxes != self.canvas.axes: return
print('click', event)
print(event.xdata)
print(event.ydata)
self.canvas.canvas.mpl_disconnect(self.cid)
return event.xdata,event.ydata
Я вызываю это из моего графического интерфейса с помощью
mouse = MouseEvent(self.widget_LID1.figure)
это работает и делает то, что я хочу, только один раз и только для определенного холста, к которому я его подключаю (self.widfget_LID1.figure
)
Есть ли способ активировать это событие каждый раз, когда я нажимаю определенную клавишу?и для всего холста у меня есть?
Нужно ли использовать lambda
или есть другой способ?Помощь приветствуется