基本思路

  • Qt中的类QProcess支持在程序中另外开辟线程
  • 其中start方法支持以字符串为参数执行命令

    1. ///
    2. /// \brief MainWindow::cmdLine run a linux command with string format in the bash
    3. /// \param strCmd linux command in string format
    4. ///
    5. void MainWindow::cmdLine(QString strCmd)
    6. {
    7. QProcess process;
    8. process.start("bash",QStringList() << "-c" << strCmd);
    9. process.waitForFinished();
    10. process.close();
    11. }
  • 但该命令看不到执行过程

    终端执行

  • 可以下述方式调用该函数,新建终端执行脚本

    1. QString strCmd = QString("gnome-terminal -x bash -c \"sh Run.sh run %1 %2 %3;\"")
    2. .arg(this->vecPoint.size())
    3. .arg((int)(this->raleMapWidth))
    4. .arg((int)(this->raleMapHeight));
    5. this->cmdLine(strCmd);
  • 即运行时会弹出终端窗口,查看脚本的标准输出

    参考内容

    • 单条指令执行

    https://www.cnblogs.com/xupeidong/p/11777031.html

    • 单条指令以及外部脚本执行

    https://blog.csdn.net/lusanshui/article/details/88720494

    • 单条指令以及外部脚本执行

    https://www.cnblogs.com/xupeidong/p/9317841.html