在qt中运行.py脚本



我想运行(单击按钮后(.py脚本

我已经尝试了以下代码

    QProcess p;
    QStringList params;
    params << "createJSON.py";
    p.start("python.exe", params);
    p.waitForFinished(-1);
    QString p_stdout = p.readAll();

我的python脚本成功运行时会创建一个json-file。这样我就可以成功运行。

我能够编写您的代码的更详细版本。

    QProcess p;
    QStringList params;
    params << "createJSON.py";
    QObject::connect(&p, &QProcess::started, []() {
        qInfo() << "Process started!";
    });
    QObject::connect(&p, &QProcess::errorOccurred, [&p]() {
        qWarning() << "Error occurred" << p.errorString();
    });
    p.start("python.exe", params);
    p.waitForFinished(-1);
    QString p_stdout = p.readAllStandardOutput();
    QString p_stderr = p.readAllStandardError();
    qDebug() << "OUT" << p_stdout;
    qDebug() << "ERR" << p_stderr;

这有效导致错误。就我而言,我得到以下内容:

过程开始!

out&quot"

err&quort'python.exe:无法打开文件'createjson.py':[errno 2]没有这样的文件或目录 n&quort'

在您的情况下可能会有所不同。无论哪种方式,使用errorOccurred信号以及errorString方法都可以使您可以调试过程实际无法启动的情况。读取stderr将允许您调试该过程启动的情况,但不会按预期运行。

相关内容

  • 没有找到相关文章