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);
}