title: connect() seems to prefix signal with wrong namespace
body: <p>I'm trying to use signals and slots to pass information to the GUI thread from another thread, as I can't modify a pixmap from any other thread. I'm encountering a runtime error:</p>
  
  <pre><code>Object::connect: No such signal QThread::image_change(std::string) in visualiser.cpp:33
  </code></pre>
  
  <p>Judging from this, though I may be wrong, it looks like the signal is being searched for in the wrong namespace, as it is actually defined in <code>Visualiser::image_change()</code>.</p>
  
  <p>My code is as follows:</p>
  
  <p>Visualiser.cpp:</p>
  
  <pre><code>    QFutureWatcher&lt;void&gt; watcher;
      connect(watcher.thread(), SIGNAL(image_change(std::string)), QCoreApplication::instance()-&gt;thread(), SLOT(update_image(std::string)), Qt::QueuedConnection);
      QFuture&lt;void&gt; update_thread = QtConcurrent::run(this, &amp;Visualiser::update_state);
      watcher.setFuture(update_thread);
  
     ...
  
      emit(image_change(imageSrc));
  
     ...
  
      void Visualiser::update_image(std::string src)
  {
      QImage image;
      image.load(src.c_str());
      ui-&gt;visualContainer-&gt;setPixmap(QPixmap::fromImage(image));
  }
  </code></pre>
  
  <p>visualiser.h:</p>
  
  <pre><code>    signals:
      void image_change(std::string src);
  
  public slots:
      void update_image(std::string src);
  </code></pre>