执行命令行
QProcess *m_pProcess;
connect(ui->pushButton_ok,&QPushButton::clicked,[this]{
QString command = ui->lineEdit_qtwexe->text();
QStringList para;para<<ui->lineEdit_exe->text();
if((!command.isEmpty())&&(!para.at(0).isEmpty()))
{
m_pProcess->start(command,para);
m_pProcess->waitForFinished();
}
});
connect(m_pProcess, &QProcess::started, [this] () {
ui->plainTextEdit->appendPlainText("started...");
});
connect(m_pProcess,static_cast<void(QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),this,[=] (int exitCode, QProcess::ExitStatus exitStatus){
if(exitStatus == QProcess::ExitStatus::NormalExit)
{
ui->plainTextEdit->appendPlainText("finised");
ui->plainTextEdit->appendPlainText("exitcode"+exitCode);
}
else {
ui->plainTextEdit->appendPlainText("error");
ui->plainTextEdit->appendPlainText("exitcode"+exitCode);
}
});
connect(m_pProcess,&QProcess::readyReadStandardOutput,this,[=](){
ui->plainTextEdit->appendPlainText(m_pProcess->readAllStandardOutput());
});
image.png
//重启exe
QString program = QApplication::applicationFilePath();
QStringList arguments = QApplication::arguments();
QString workingDirectory = QDir::currentPath();
QProcess::startDetached(program, arguments, workingDirectory);
QApplication::exit();
网友评论