class MyDialog : public QDialog, public Ui_MyDialog {
Q_OBJECT
public:
MyDialog();
private:
QProcess* PtrProcess;
private slots:
void A();
void B();
void C(int);
void D(int);
void toPrintStdout();
}
MyDialog::MyDialog() {
setupUi(this);
PtrProcess = new QProcess(this);
connect(PtrProcess, SIGNAL(readyRead()), this, SLOT( A() ));
connect(PtrProcess, SIGNAL(started()), this, SLOT( B() ));
connect(PtrProcess, SIGNAL(error(int)), this, SLOT( C(int) ));
connect(PtrProcess, SIGNAL(finished(int)), this, SLOT( D(int) ));
connect(pushButton, SIGNAL(clicked()), this, SLOT( DoProcess() ));
connect(PtrProcess, SIGNAL(readyReadStandardOutput()), this, SLOT( toPrintStdout() ));
}
void MyDialog::DoProcess() {
QString program = "./abc/test.exe";
QStringList arguments;
arguments << "-abc" << "-def" << "-ghijk"
PtrProcess->setProgram(program);
PtrProcess->setArguments(arguments);
PtrProcess->start();
}
void MyDialog::toPrintStdout() {
QString rStd = PtrProcess->readAllStandardOutput();
....
....
}