Qt QProcess

2021-10-30  本文已影响0人  c之气三段

执行命令行

    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();
上一篇 下一篇

猜你喜欢

热点阅读