[Development] No Finished signal from QProcess!

1+1=2 dbzhang800 at gmail.com
Mon Feb 27 20:10:46 CET 2012


Hi,

please use
  return a.exec();
instead of
  return 0;

Debao

2012/2/27 lata agrawal <lata07agrawal at gmail.com>:
> Hi,
>
> I am running console application C1 in QProcess. I am starting this console
> application C1 from another console application C2. Problem is:
>
> I am only getting finished signal from C1 when I use waitforfinshed() else I
> am not getting finished signal from C1. Here is the code:
>
>                 QString strProgram;
>                 strProgram = <Path to C1>;
>
> updateProc->setProcessChannelMode(QProcess::ForwardedChannels);
>                 connect(updateProc,
> SIGNAL(finished(int,QProcess::ExitStatus)),
> SLOT(procStarted(int,QProcess::ExitStatus)), Qt::DirectConnection);
>
> updateProc->setStandardOutputProcess(this->thread()->parent());
>                 updateProc->start(strProgram, arguments);
>
>                 Download is over, indicate through bool variable that next
> downlaod can be started
>                 if(updateProc->waitForFinished(-1))
>                 {
>                     qDebug("Update process finished!\n");
>                 }
>                 else
>                 {
>                     qDebug("Update process not yet finished!\n");
>                 }
>
> void FloDownloadManager::procStarted(int retVal ,QProcess::ExitStatus
> exitStat)
> {
>     qDebug("Update process finished automatically!\n");
>     if(currentExecutingPriority == AdsUpdate)
>     {
>         emit adUpdateDone();
>     }
>     blnStartNextUpdate = true;
>
>     updateProc->deleteLater();
> }
>
>
> If I comment the waitforfinished() code, I don't get the finished signal.
> But if I include the waitforfinished() signal, I don't get the finished
> signal. Code for C1 is as follows:
>
> #include <QtCore/QCoreApplication>
> #include "updater.h"
>
> int main(int argc, char *argv[])
> {
>     QCoreApplication a(argc, argv);
>
>     qDebug("Inside Updater\n");
>
>     QTimer::singleShot(5000, &a, SLOT(quit()));
>     qDebug("returning from Updater process!@@@@@@@@\n");
>
>     return 0;
> }
>
> I fail to understand what is going on wrong here. Someone please help.
>
> Regards,
> Lata
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>



More information about the Development mailing list