【问题标题】:Run Linux commands from Qt4从 Qt4 运行 Linux 命令
【发布时间】:2011-01-10 00:42:31
【问题描述】:

如何从 Qt4 在 Linux 下运行命令行程序?当然,我想以某种我可以使用的方式获得输出。我会将它用于ls | grep,但很高兴知道未来的任何问题。

【问题讨论】:

  • 任何特定的语言?
  • 除非你在谈论它的绑定之一(是的,我见过这种情况),但我会让它滑动。
  • 如果您不想在 QProcess 运行时阻止您的应用程序,请查看此问题的答案:*.com/questions/10098980/…

标签: c++ linux shell qt4 posix


【解决方案1】:
QProcess p;
p.start( /* whatever your command is, see the doc for param types */ );
p.waitForFinished(-1);

QString p_stdout = p.readAllStandardOutput();
QString p_stderr = p.readAllStandardError();

【讨论】:

    【解决方案2】:

    使用QProcess

    【讨论】:

    • 对于某些任务,编写自己的代码可能更容易(或更健壮)——你提到了 ls | grep,可能带有过滤器的 QDir 或 QRegExp 可能会满足您的需求。不过,对于一般情况,QProcess 绝对是最好的选择。
    • 这是一个很好的观察。我想我会再试一次,但这种情况下的问题也有点面向未来使用的一般情况。还是谢谢!
    【解决方案3】:

    使用popen怎么样?

    【讨论】:

    • e8johan:是的...我知道您想使用 QT API,但我想我会给出这个答案。 :)