Создала класс:
QmStdReader .h
//---------------------------------------------------------------------------
#ifndef QmStdReader_fileH
#define QmStdReader_fileH
//---------------------------------------------------------------------------
#include <QtCore/QThread>
#include <QtCore/QFile>
//---------------------------------------------------------------------------
class QmStdReader : public QThread
{
Q_OBJECT
public:
QmStdReader(QObject * parent = 0);
void run();
signals:
void signalStdOutStr(const QString &msg);
private:
QFile stdOut;
QByteArray data;
};
#endif //QmStdReader_fileH
QmStdReader.cpp
#include "QmStdReader.h"
QmStdReader::QmStdReader(QObject * parent)
: QThread (parent)
{
stdOut.open(stdout, QIODevice::ReadOnly);
}
//-----------------------------------------------------
void QmStdReader::run()
{
while (true)
{
stdOut.readLine();
while (!stdOut.atEnd())
{
[b]/* в этот цикл не заходит никогда*/[/b]
QString s = stdOut.readLine();
if (!s.isEmpty())
{
emit signalStdOutStr(s);
}
}
};
return;
}
Создала экземпляр класса и связала его сигнал со слотом, в котором строка Qstring выводится в QtextEdit
main.cpp
QmStdReader* stdReader;
.........
int main(int argc, char *argv[])
{
QApplication a( argc, argv );
Test w;
w.show();
stdReader = new QmStdReader();
QObject::connect(stdReader, SIGNAL(signalStdOutStr(const QString)), &w, SLOT( slotSetOutput(const QString) ));
stdReader->start();
printf("\nPrintf something from main\n");
fflush(stdout);
return a.exec();
}