[gelöst]readyRead() kommt erst nach Prozessende
Verfasst: 11. April 2007 18:43
Hallo zusammen.
Ich habe folgendes Problem:
Ich starte aus einer Qt-Anwendung folgendermaßen einen Prozess:
Der Prozess, der da gestartet wird ist ein kleines Testprogramm, das folgendermaßen aussieht:
Es ist in c geschrieben.
Mein problem ist, dass ich gerne in meiner Anwendung sehen würde, was in dem Prozess passiert. Allerdings kommt das readyRead()-Signal erst, wenn der Prozess beendet ist (also, wenn ich dem Prozess ein "q" geschickt habe), obwohl vorher ja schon Ausgaben im Prozess gemacht werden.
Was mache ich falsch?
Hier zur komplettierung noch der Slot, der mit readyRead verbunden ist:
Ach ja: das ganze passiert unter Qt4.2.2 und unter Linux.
Ich habe folgendes Problem:
Ich starte aus einer Qt-Anwendung folgendermaßen einen Prozess:
Code: Alles auswählen
infoGatherProcess = new QProcess(this);
connect(infoGatherProcess, SIGNAL(readyRead()), this, SLOT(dataAvail()));
infoGatherProcess->start("/home/manto/DIPLOM/helloworld/debug/src/helloworld");
Code: Alles auswählen
int main(int argc, char *argv[])
{
printf("Quit by typing 'q'\n");
while ( getchar() != (int)'q' )
{
printf("Quit by typing 'q'\n");
}
return EXIT_SUCCESS;
}
Mein problem ist, dass ich gerne in meiner Anwendung sehen würde, was in dem Prozess passiert. Allerdings kommt das readyRead()-Signal erst, wenn der Prozess beendet ist (also, wenn ich dem Prozess ein "q" geschickt habe), obwohl vorher ja schon Ausgaben im Prozess gemacht werden.
Was mache ich falsch?
Hier zur komplettierung noch der Slot, der mit readyRead verbunden ist:
Code: Alles auswählen
void MainWindow::dataAvail()
{
QByteArray test;
test += infoGatherProcess->readAll();
mainEdit->append(test);
}