Я написал этот класс
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.pyplot as plt
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import QtGui
class Canvas(FigureCanvas):
"""
CLASS used to convert widget into a matplotlib figure
"""
signal = pyqtSignal()
def __init__(self, parent=None):
self.figure = plt.figure()
FigureCanvas.__init__(self, self.figure)
FigureCanvas.setSizePolicy( self, QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding )
FigureCanvas.updateGeometry( self )
self.setParent(parent)
self.cid = self.figure.canvas.mpl_connect('button_press_event', self)
def __call__(self, event):
if event.button == 3: # right button
print(event.xdata)
print(event.ydata)
return event.xdata, event.ydata
, который просто возвращает значение точки данных, которую пользователь щелкает (щелчок правой кнопкой мыши) на холсте
Я хотел бы улучшить этот класс, добавив больше событий.Так как все события являются событиями мыши и есть только 2 кнопки, я хотел бы иметь возможность включить действие (вызванное событием мыши) только после определенного нажатия клавиши.
любая помощь?