title: QProcess not emitting its signals when not waitForFinished()
body: <p>In the following code omitting the <code>waitForFinished()</code> makes the QProcess stop emitting its signal. What the heck is wrong with it? Is this a Qt Bug? (5.7). Note this code is run parallel with QtConcurrent run. But this should not change anything, should it? Afaik sending signals in other threads is fine, though they will be queued.</p>
  
  <pre><code>QProcess *process = new QProcess;
  process-&gt;setReadChannel(QProcess::StandardOutput);
  
  connect(process, &amp;QProcess::readyReadStandardOutput, [](){
      qDebug()&lt;&lt; "readyReadStandardOutput";
  });
  
  connect(process, &amp;QProcess::stateChanged, [](QProcess::ProcessState state){
      qDebug()&lt;&lt; "stateChanged"&lt;&lt; state;
  });
  
  connect(process, static_cast&lt;void(QProcess::*)(int, QProcess::ExitStatus)&gt;(&amp;QProcess::finished),
      [=](){
      qDebug()&lt;&lt; "finsished";
  });
  
  connect(process, static_cast&lt;void(QProcess::*)(int, QProcess::ExitStatus)&gt;(&amp;QProcess::finished),
      [this, process](int exitCode, QProcess::ExitStatus exitStatus){
      qDebug()&lt;&lt; "finsished";
      if (exitStatus == QProcess::NormalExit &amp;&amp; exitCode == 0){
          while (process-&gt;canReadLine()) {
             QString line = QString::fromLocal8Bit(process-&gt;readLine());
             QRegularExpression regex("\"(.*)\" {(.*)}");
             QRegularExpressionMatch match = regex.match(line);
             names_.push_back(match.captured(1));
             uuids_.push_back(match.captured(2));
          }
      }
      process-&gt;deleteLater();
  });
  process-&gt;start("VBoxManage",  {"list", "vms"});
  process-&gt;waitForFinished(); // This line changes everything
  qDebug()&lt;&lt; "leftWaitForFinished";
  </code></pre>