Why do I need to decorate connected slots with pyqtSlot?
<p>I'm using pyqt5, and I have several methods connected using code similar to the following:</p>

<pre><code>self.progress.canceled.connect(self.cancel)
</code></pre>

<p>Where, for example, <code>self.cancel</code> is:</p>

<pre><code>def cancel(self):
    self.timer.stop()
</code></pre>

<p>This code seems to work cleanly in multiple scenarios, without ever decorating <code>cancel</code> with <code>pyqtSlot</code> or doing anything special with it.</p>

<p>My questions are:</p>

<ol>
<li>What am I losing by doing it this way?</li>
<li>What is the reason <code>pyqtSlot</code> is required?</li>
</ol>