Qt Appel Externe Script Python

Je suis en train d'écrire une interface graphique de l'enveloppe pour l'un de mes outils de ligne de commande écrit en Python.
Il m'a été suggéré que je devrais utiliser Qt.

Ci-dessous est mon projet .fichier cpp:

#include "v_1.h"
#include "ui_v_1.h"
#include<QtCore/QFile>
#include<QtCore/QTextStream>
#include <QProcess>
#include <QPushButton>
v_1::v_1(QWidget *parent) :
    QMainWindow(parent),ui(new Ui::v_1)
    {
        ui->setupUi(this);
    }
    v_1::~v_1()
    {
        delete ui;
    }

void v_1::on_pushButton_clicked()
{
    QProcess p;
    p.start("python script -arg1 arg1");
    p.waitForFinished(-1);
    QString p_stdout = p.readAllStandardOutput();
    ui->lineEdit->setText(p_stdout);
}

En dessous de mon projet est d'en-tête du fichier:

#ifndef V_1_H
#define V_1_H
#include <QMainWindow>
namespace Ui {
class v_1;
}

class v_1 : public QMainWindow
{
    Q_OBJECT   
public:
    explicit v_1(QWidget *parent = 0);
    ~v_1();

private slots:
    void on_pushButton_clicked();
private:
    Ui::v_1 *ui;
};

#endif //V_1_H

Le fichier d'INTERFACE utilisateur est juste un Bouton-Poussoir et un LineEdit widget.

J'ai attribué le Bouton-Poussoir une fente quand il est cliqué. Le on_pushButton_clicked() méthode fonctionne très bien quand je l'appelle certains services publics, comme les ls ou ps, et il canalise la sortie de ces commandes pour les LineEdit widget, mais lorsque j'essaie d'appeler un script Python, il ne pas me montrer quoi que ce soit sur le LineEdit widget.

Toute aide serait grandement appréciée.

Je conseille PyQt au lieu de cela, ce sera plus facile de cette façon.
QPRocess a retourne les valeurs pour waitForStarted, waitForFinished(), vous pouvez lire le stderr de sortie (analogue à la façon dont vous lire stdout), il y a QProcess::errorString(). Vérifiez les premiers à voir ce qui ne va pas.

OriginalL'auteur devoidfeast | 2013-02-28