进程关闭时获取指示-QT

进程关闭时获取指示-QT,qt,process,Qt,Process,我正在用QT编写桌面应用程序。 在我的申请表中,我打开了班级的另一个申请表 QProcess *myProcess; myProcess->start(path + argStr); 我想知道这个过程是否结束(可能是manullay的人) 所以我开始了一个新的线程 void processExitDetector::run() { connect(myProcess,SIGNAL(finished(int)),this, SLOT (stop())); } void

我正在用QT编写桌面应用程序。 在我的申请表中,我打开了班级的另一个申请表

QProcess *myProcess;
myProcess->start(path + argStr);
我想知道这个过程是否结束(可能是manullay的人) 所以我开始了一个新的线程

void processExitDetector::run()
 {
       connect(myProcess,SIGNAL(finished(int)),this, SLOT (stop()));
 }


void processExitDetector::stop()
 {

 }
但是如果函数stop()中有断点。我从不停下来,即使我正在停止这个过程。
我在干什么?当进程停止时,获取指示的最佳方法是什么?

我认为您可能对信号/插槽的概念有点倒退。您不需要等待线程中QProcess的退出来建立连接。这是信号与插槽的连接,它应该告诉您何时完成

您的想法是正确的,但是不需要单独启动线程来阻止
waitForFinished
。基本上,你所建立的联系是毫无意义的

  • 创建流程
  • 接通信号
  • 开始这个过程

  • processFinished()
    就是您定义(或使用内置插槽)的插槽,当您的流程完成时会收到通知。

    Hmm。您刚刚更新了代码并删除了
    waitForFinished
    ,这会稍微改变上下文。你到底没有这么做吗?
    QProcess *myProcess;  
    connect(myProcess, SIGNAL(finished(int)), this, SLOT(processFinished()));  
    myProcess->start(path + argStr);