0

当我在 QTCreator 下运行我的应用程序时,我的应用程序运行不同的 bash 文件,一切正常,但是当我直接运行我的应用程序时,我无法读取 QProcess 输出。即使我通过终端运行我的应用程序,它也可以正常工作,那么问题出在哪里?
我在QT 5.7 / OSX Platform
这里使用的是我的代码

        QProcess proc ;
    proc.start(QCoreApplication::applicationDirPath() + "/check.sh");
    proc.waitForFinished();
    QString output = QString(proc.readAll());
    qDebug() << output ;
4

1 回答 1

0

您应该调查一些可能性

  • 当您独立运行脚本时,您能否确认脚本正在运行?
  • QProcess 在提供脚本时总是对创建进程有点不安,具体取决于平台。脚本中有shebang吗?它与您运行程序的外壳相匹配吗?您可能需要基于 shell 创建进程,提供脚本的文件名作为参数。
  • 如果进程没有刷新输出缓冲区,QProcess::readAll() 可能不返回任何内容。最后输出 EOL 将强制刷新。
于 2016-12-22T07:54:02.513 回答