我想运行(单击按钮后).py脚本
我已经尝试了以下代码
<root-logger>
<level name="DEBUG"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
<root-logger>
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
<named-formatter name="SIMPLE-PATTERN"/>
</formatter>
</console-handler>
我的Python脚本在成功运行时会创建一个JSON文件。 这样我就可以查看运行是否成功。
答案 0 :(得分:0)
我已经能够编写您的代码的更详细的版本。
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“”
ERR“ python.exe:无法打开文件'createJSON.py':[错误2]没有这样的文件或目录\ n”
您的情况可能有所不同。无论哪种方式,将errorOccurred
信号与errorString
方法一起使用将允许您调试过程实际上无法启动的情况。读stderr
将使您可以调试过程开始但未按预期运行的情况。