分页: 1 / 1

痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2010-03-17 1:10
lkrocksthone
痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit中呢?如果有,能不能共享下过程啊!谢谢!我的程序或者是shell命令能够正常调用,但是,没法重定向信息从QTextEdit输出。只是输出个换行。查了很多资料,未果。希望高人指点指点,小的感激不尽!为这,痛苦中...救命啊!急!

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2010-03-17 9:39
zigzed
QT下的没有做过,windows下做过,因为就是获取STDIO的句柄,然后重定向。
下面的示例代码应该可以在QT4下使用吧。
http://doc.trolltech.com/3.0/process-example.html

另外,你确认shell中是输出到 STDOUT,不是 STDERR 吧。

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2010-03-17 13:00
lkrocksthone
我使用:
QProcess proc;
QString str;
proc->setSTDFile("a.txt");
proc->start("ifconfig");
在当前目录下有a.txt,内容为ifconfig的输出。
然后:
str=proc->readAll();
textEdit->appent(str);
只输出个换行。
不知问题何在?除了readAll,其他的readAllSTDerr等都试过了,效果一样。

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2010-03-17 13:27
zigzed
没有使用过QT,对他的signal-slot机制不是很熟悉,说错了的话请见谅。我看了QT4的文档,没有QT3详细,所以我按照QT3的说明理解,希望QT3/4在这个方面没有调整。

1. readStdout/readAllStandardOutput,按照QT3,Reads the data that the process has written to standard output。也就是说他只会获取已经输出到标准输出的数据。按照文档,readStdout 并不会等待(非阻塞方式)。
2. readyReadStdout/readyReadAllStandardOutput,当有了新的数据,会通过signal-slot机制调用readyReadStdout通知应用程序,应用程序可以调用 readStdout 获取数据。
3. setSTDFile,我没有看到相应的文档,是否因为setSTDfile会调用QT内部的处理?

我的理解:
应用程序需要处理 readyReadStdout 消息,在收到该消息后调用 readStdout 获取内容。

请注意示例代码中的:

代码: 全选

connect( proc, SIGNAL(readyReadStdout()),
            this, SLOT(readFromStdout()) );

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2010-03-17 13:29
wangdu2002
楼主去专门的Qt中文论坛问下版主吧,那个版主Qt水平很不错滴----至少在国内来说。 :em06

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2010-03-17 16:15
lkrocksthone
钻研中...

另外: 不好意思,我缩写了proc->setStandardOutputFile();

问题在其它地方也发了,等着回复。看来我还得看看书... :em06

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2010-03-17 18:07
lkrocksthone
问题解决啦,哈哈。。
天哪,我痛苦了两天,终于熬出lai啦..
原来是基础、原理和细节问题...冷静,再看一遍课本,问题解决..!..
谢谢,楼上们的帮助,没有你们的分担,我可要绝望啦....Thanks again.

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2011-08-03 11:34
torresfan
能告诉下怎么解决的吗?遇到同样的问题了

Re: 痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit呢?

发表于 : 2015-04-02 15:11
8021guoli
您是怎么解决的?遇到相同的问题