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);
private slots:
void on_pushButton_clicked();
void outExec();
void finishExec
( int exitCode,
QProcess::ExitStatus exitStatus
);
};
#endif // MAINWINDOW_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
To copy to clipboard, switch view to plain text mode
.CPP
#include "mainwindow.h"
#include <QDebug>
#include <QDir>
MainWindow
::MainWindow(QWidget *parent
) :{
setupUi(this);
}
void MainWindow::on_pushButton_clicked()
{
QString programm
= lineEdit
->text
();
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());
[ATTACH
]8883[/ATTACH
] 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
));
}
#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());[ATTACH]8883[/ATTACH]
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));
}
To copy to clipboard, switch view to plain text mode
Bookmarks