• 8684阅读
  • 4回复

关于qprocess的start方法和startDetached方法的差异 [复制链接]

上一主题 下一主题
离线erhumusic182
 

只看楼主 倒序阅读 楼主  发表于: 2011-11-18
关于qprocess的start方法和startDetached方法的差异

我有做了一个后台程序,然后用一个前台程序去启动它,发现用start方法无法启动,总是出错,但是用startDetached方法却能成功启动,不知道是为什么,望赐教!

想知道怎样能用start启动成功(我的目的就是这个)
qt爱好者
离线jdwx

只看该作者 1楼 发表于: 2011-11-18
回 楼主(erhumusic182) 的帖子
还是贴出和start有关的代码吧。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线erhumusic182

只看该作者 2楼 发表于: 2011-11-18
pProcess->start("transmit.exe");
    if (!pProcess->waitForFinished(3000))
    {
        QMessageBox::information(NULL,QObject::tr("提示"),QObject::tr("启动失败!"));
        delete pProcess;
        return;
    }
    delete pProcess;
qt爱好者
离线jdwx

只看该作者 3楼 发表于: 2011-11-18
回 2楼(erhumusic182) 的帖子
只剩这一句:pProcess->start("transmit.exe");

写一个槽和
void QProcess::finished ( int exitCode, QProcess::ExitStatus exitStatus ) [signal]
这个信号connect, 在槽内delete ,如果还出错,用pProcess->deleteLater ()

出错可能是因为等待时间不够长,transmit.exe还没执行完就被delete。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线moxiaomomo
只看该作者 4楼 发表于: 2012-12-27
不应该是waitForFinished()啊,如果你启动的程序并没有退出,那自然会被阻塞了。
应该是用waitForStarted()来检测是否启动成功
热爱生活 珍惜时间 爱自己所爱
快速回复
限100 字节
 
上一个 下一个