问题如下:
我现在想实现的是,QProcess调用一个可执行的小程序,让小程序执行过程中往StdOut中输出内容
然后用一个窗口部件,得到StdOut的内容,即小程序打印一行,窗口输出一行,就是这个意思。
也就是:
希望每次能够接受到readyReadStdOut的信号,并读取了一行,然后再给窗口部件显示;
可是现在
例如用:
......
fprintf(stdout,"The value is here!");
fprintf(stdout,"The value is here!");
......
一下子就显示。。。
可是用如下的写法,也就是让它显示和终端一样,一行后一会儿再显示另一行。。。
......
fprintf(stdout,"The value is here!");
sleep(1);
fprintf(stdout,"The value is here!");
.......
它是等到了小程序结束了,然后一下子显示出两行。。。
很郁闷,是不是需要同步呀,我用QThread来启动的进程。然后用信号读取stdout,再传个给窗口。。。
从程序上看每次读取了一行,可是为什么到最后一起显示出来。。。郁闷,是我sleep不能用?
我的理解我的程序是等到了外部小程序执行结束了,控件和qDebug()才有的反应!
怎么像终端一样,一行一行的显示呀。。。摆脱各位大牛们了!!!