title: TypeError: one() takes 1 positional argument but 2 were given
body: <p>PyCharm return &quot;TypeError: one() takes 1 positional argument but 2 were given&quot;<br />
  I've searched for the whole night but still can't figure it out T T<br />
  I think the bug is from <strong>mpl_connect()</strong>, because when I use the <strong>connect() from pyqtBoundSignal</strong> it works</p>
  <pre><code>&quot;&quot;&quot;test.py&quot;&quot;&quot;
  class forTest(QWidget):
      signalTest = pyqtSignal()
  
      def __init__(self):
          super(forTest, self).__init__()
          canvas = FigureCanvas(figure(facecolor=&quot;blue&quot;))
          # I got the following from other answer, but still not working
          self.cid = canvas.mpl_connect('button_press_event', self.one)
  
          layout = QHBoxLayout()
          self.setLayout(layout)
          layout.addWidget(canvas)
  
      def one(self):
          self.signalTest.emit()
          print(&quot;emit()&quot;)
  
  &quot;&quot;&quot;receice.py&quot;&quot;&quot;
  class RTest(object):
      def handle_signal(self):
          print(&quot;get successfully&quot;)
  
  &quot;&quot;&quot;main.py&quot;&quot;&quot;
  if __name__ == &quot;__main__&quot;:
      app = QApplication(sys.argv)
  
      tt = forTest()
      rr = RTest()
      tt.signalTest.connect(rr.handle_signal)
  
      tt.show()
      sys.exit(app.exec_())
  </code></pre>