使用parent杀死qprocess

时间:2012-10-04 16:59:14

标签: c++ parent kill qprocess

这是执行命令并返回输出的代码。 问题是,如果我杀死testProcess,“ping”继续进行。 我也试过

QObject *parent;
parent=new QObject;
myprocess *p;
p=new myprocess(parent);

抱歉我的英文

testProcess.h:

class myprocess : public QProcess{
    Q_OBJECT
public:
    myprocess( QObject *parent = 0 );
protected slots:
void readyOut();
void readyErr();
};

testProcess.cpp main:

myprocess *p;
p=new myprocess;

QObject::connect(p,SIGNAL(readyReadStandardOutput()),p,SLOT(readyOut()));
QObject::connect(p,SIGNAL(readyReadStandardError()),p,SLOT(readyErr()));

p->start("ping -t www.google.com");

p->waitForFinished(60000);

delete p;

1 个答案:

答案 0 :(得分:0)

如果您希望在应用程序关闭时关闭进程,则可以连接到核心应用程序aboutToQuit()信号。它看起来像这样

connect( QCoreApplication::instance(), SIGNAL(aboutToQuit()), p, SLOT(kill()));

流程中还有terminate()个广告位可供使用,但我认为kill()可能更适合您的情况。