QProcess错误的行为

时间:2016-12-22 07:37:40

标签: c++ qt qt5 qt-creator qt5.7

当我在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 ;

1 个答案:

答案 0 :(得分:0)

您应该调查一些可能性

  • 当您单独运行脚本时,是否可以确认脚本正在运行?
  • QProcess对于在提供脚本时创建进程总是有点不安,具体取决于平台。脚本中有shebang吗?它是否与您运行程序的shell匹配?您可能需要基于shell创建进程,并提供脚本的文件名作为参数。
  • QProcess :: readAll()如果进程未刷新输出缓冲区,则不返回任何内容。在结束时输出EOL会强制冲洗。