Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вывод stdout в QTextEdit
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
beginner
Не получается вывести stdout в QTextEdit. Помогите, пожалуйста.

Создала класс:
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();
}


Litkevich Yuriy
вообще-то из stdout не читаю, а в него пишут. А читают из stdin
beginner
Цитата(Litkevich Yuriy @ 11.7.2013, 21:23) *
вообще-то из stdout не читаю, а в него пишут. А читают из stdin

то, что напишут (дочерний поток) в stdout, я хочу увидеть в QeditText
Litkevich Yuriy
попробуй вот это
beginner
Цитата(Litkevich Yuriy @ 12.7.2013, 8:33) *
попробуй вот это

мне бы на Qt и чтобы платформонезависимо работало
Litkevich Yuriy
Цитата(beginner @ 12.7.2013, 11:56) *
мне бы на Qt и чтобы платформонезависимо работало
ну, поисковики в помощь. :)


на nix платформах перехват как-то просто делается, но забыл как это выглядит :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2018 IPS, Inc.