Процесс Qt автоматически убивается - PullRequest
0 голосов
/ 05 июля 2018

При нажатии кнопки необходимо запустить два процесса ( p и pr ). Но, к сожалению, мой второй процесс (pr) автоматически убивается. Функция OutLan никогда не вызывается.

QString lancn;
void MainWindow::on_lineEditPathSet(QString inputpath)
{ 

    QString parameters = " " + settings.value("save_nmix").toString() + " " + settings.value("save_norm_method").toString() + " " + settings.value("save_thresh_value").toString() + " " + settings.value("save_oos_thresh").toString() + " " + flag;
    QString cmd = "test.exe " + inputpath + parameters;

    if (p)
    {
      p->setEnvironment( QProcess::systemEnvironment() );
      p->setProcessChannelMode( QProcess::SeparateChannels );
      p->start(cmd);
      p->waitForStarted();
      connect( p, SIGNAL(readyReadStandardOutput()), this, SLOT(OutTable()) );
      connect( p, SIGNAL(readyReadStandardError()), this, SLOT(ErrConsole()));
    }

    QMessageBox msgBox(this);
    msgBox.setWindowTitle("Launching Testing Process");
    msgBox.setText("Testing process is being initialized.\n\nIt may take some time.\n\nPlease wait.");
    msgBox.setIcon(QMessageBox::Information);
    msgBox.exec();
    if(lang_method.compare("ConvoNet")==0)
    {
        QProcess pr;

        QStringList params;
        params.append("test.py");
        params.append(inputpath);
        pr.start("python", params);
        pr.waitForStarted();
        connect( &pr, SIGNAL(readyReadStandardOutput()), this, SLOT(OutLan()) );

    }
}

    void MainWindow::OutLan()
    {
        QProcess *p = dynamic_cast<QProcess *>( sender() );
        lancn=p->readLine();
    }

Выход:

QProcess: уничтожен, пока процесс ("python") все еще работает.

Скажите, пожалуйста, почему процесс ( pr ) убивается?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...