我想运行(单击按钮后(.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
将允许您调试该过程启动的情况,但不会按预期运行。