При нажатии кнопки необходимо запустить два процесса ( 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 ) убивается?