2

これは、コマンドを実行して出力を返すためのコードです。問題は、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;
4

1 に答える 1

0

アプリケーションが閉じたときにプロセスを閉じたい場合は、コア アプリケーションaboutToQuit()シグナルに接続できます。それはこのように見えるでしょう

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

terminate()使用できるプロセスにもスロットがありkill()ますが、あなたの状況により適していると思います。

于 2012-10-26T17:59:09.633 に答える