2012-10-04 65 views
2

這是執行命令並返回輸出的代碼。 問題是,如果我殺死testProcess,「ping」會繼續進行。 我用父親kill qprocess

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主:

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; 

回答

0

如果你希望你的程序關閉當應用程序關閉時,您可以連接到核心應用程序aboutToQuit()信號。這將是這個樣子

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

也有在可能被使用的過程中terminate()插槽,但我認爲kill()可能是您的情況更合適。