title: PyQt5 Signals and Slots 'QObject has no attribute' error
body: <p>I have been trying to find a way to update the GUI thread from a Python thread outside of main. The <a href="http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html">PyQt5 docs</a> on sourceforge have good instructions on how to do this. But I still can't get things to work.</p>
  
  <p>Is there a good way to explain the following output from an interactive session? Shouldn't there be a way to call the emit method on these objects?</p>
  
  <pre><code>&gt;&gt;&gt; from PyQt5.QtCore import QObject, pyqtSignal
  &gt;&gt;&gt; obj = QObject()
  &gt;&gt;&gt; sig = pyqtSignal()
  &gt;&gt;&gt; obj.emit(sig)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  AttributeError: 'QObject' object has no attribute 'emit'
  </code></pre>
  
  <p>and</p>
  
  <pre><code>&gt;&gt;&gt; obj.sig.emit()
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  AttributeError: 'QObject' object has no attribute 'sig'
  </code></pre>
  
  <p>and</p>
  
  <pre><code>&gt;&gt;&gt; obj.sig = pyqtSignal()
  &gt;&gt;&gt; obj.sig.emit()
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'emit'
  </code></pre>