PDA

View Full Version : Text from standart output



Resager
3rd April 2013, 12:19
I am use readAllStandardOutput(), but it not get text from outpt (work only with "ping" or "ipconfig").
If i start with CMD (whout my programm) i can see text in console. But from my code to string put "".
Please help
.H

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "ui_mainwindow.h"
#include <QProcess>

class MainWindow : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
QProcess *myprocess;
private slots:
void on_pushButton_clicked();
void outExec();
void finishExec ( int exitCode, QProcess::ExitStatus exitStatus );
};

#endif // MAINWINDOW_H

.CPP

#include "mainwindow.h"
#include <QDebug>
#include <QDir>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
setupUi(this);
}

void MainWindow::on_pushButton_clicked()
{
QString programm = lineEdit->text();
myprocess = new QProcess(this);
myprocess->setObjectName(programm);
//don`t work
//myprocess->start(QString("exec\\" + programm).toAscii());
//don`t work too
myprocess->start(QString("cmd /C " + QDir::currentPath() + "/exec/" + programm).toAscii());8883
qDebug() << "RUN " << QString("cmd /C " + QDir::currentPath() + "/exec/" + programm).toAscii();
connect(myprocess, SIGNAL(readyReadStandardOutput ()), this, SLOT(outExec()));
connect(myprocess, SIGNAL(finished (int,QProcess::ExitStatus)), this, SLOT(finishExec(int,QProcess::ExitStatus)));
}

void MainWindow::outExec()
{
QString out = myprocess->readAllStandardOutput();
qDebug() << "__" << out;
plainTextEdit->appendPlainText(QString(out));
}

void MainWindow::finishExec ( int exitCode, QProcess::ExitStatus exitStatus )
{
QString out = myprocess->readAllStandardOutput();
qDebug() << out;
plainTextEdit->appendPlainText(QString(out));
}

Santosh Reddy
3rd April 2013, 15:35
Start the program directly instead.



//myprocess->start(QString("cmd /C " + QDir::currentPath() + "/exec/" + programm).toAscii());
myprocess->start(QString(QDir::currentPath() + "/exec/" + programm).toAscii());

anda_skoa
3rd April 2013, 15:35
Any specific reason do not run the program directly?

Cheers,
_