在Qt中运行.py脚本

时间:2019-07-02 09:16:25

标签: python python-3.x qt qt5

我想运行(单击按钮后).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文件。 这样我就可以查看运行是否成功。

1 个答案:

答案 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将使您可以调试过程开始但未按预期运行的情况。