pyqt5でグラフ上をクリックしたときに座標が表示されるGUIは次のように書けます。

import sys
from PyQt5 import QtGui,QtCore, QtWidgets,QtMultimedia, QtMultimediaWidgets
from PyQt5.QtWidgets import QDialog, QApplication, QVBoxLayout
from PyQt5.QtCore import Qt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5 import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
import matplotlib.pyplot as plt

import numpy as np


class MyCanvas(FigureCanvas):
    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)
        self.axes = fig.add_subplot(111)

        self.plot_figure()

        FigureCanvas.__init__(self, fig)
        self.setParent(parent)


class MyStaticMplCanvas(MyCanvas):
    def plot_figure(self):
        x=np.arange(0,2*np.pi,0.1)
        y=np.sin(x)
        self.axes.plot(x,y,"-")
        self.axes.set_xlabel("x")
        self.axes.set_ylabel("y")
        self.axes.set_xlim(0,2*np.pi)     




class Main(QDialog):
    def __init__(self, parent=None):
        super(Main, self).__init__(parent)

        #canvas = MyCanvas(self)
        canvas = MyStaticMplCanvas(self)
        canvas.mpl_connect('button_press_event', self.mousePressEvent)

        layout = QVBoxLayout()
        layout.addWidget(canvas)

        self.setLayout(layout)

        self.setWindowTitle('plot')
        self.show()

    def mousePressEvent(self,event):
        print(event.xdata)
        print(event.ydata)
        #print(event.x)
        #print(dir(event))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = Main()

    app.exec_()

ここで、マウスプレスイベントの関数をMycanvasクラス内に移動させようとしました。そのように書き直したコードが次です。

import sys
from PyQt5 import QtGui,QtCore, QtWidgets,QtMultimedia, QtMultimediaWidgets
from PyQt5.QtWidgets import QDialog, QApplication, QVBoxLayout
from PyQt5.QtCore import Qt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5 import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
import matplotlib.pyplot as plt

import numpy as np


class MyCanvas(FigureCanvas):
    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)
        self.axes = fig.add_subplot(111)

        self.plot_figure()

        FigureCanvas.__init__(self, fig)
        self.setParent(parent)


    def mousePressEvent(self,event):
        #print("l")
        if event.button() == Qt.LeftButton:
            print(event.xdata)
            print(event.ydata)

        elif event.button() == Qt.RightButton:
            print("L")


class MyStaticMplCanvas(MyCanvas):
    def plot_figure(self):
        x=np.arange(0,2*np.pi,0.1)
        y=np.sin(x)
        self.axes.plot(x,y,"-")
        self.axes.set_xlabel("x")
        self.axes.set_ylabel("y")
        self.axes.set_xlim(0,2*np.pi)     




class Main(QDialog):
    def __init__(self, parent=None):
        super(Main, self).__init__(parent)

        #canvas = MyCanvas(self)
        canvas = MyStaticMplCanvas(self)

        layout = QVBoxLayout()
        layout.addWidget(canvas)

        self.setLayout(layout)

        self.setWindowTitle('plot')
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = Main()

    app.exec_()

しかし、この後者のコードではグラフ上をクリックしても何も起こりませんでした。エラーすら吐きませんでした。どこが悪かったのでしょうか。