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

软件和网站开发以及相关技术探讨
回复
头像
lkrocksthone
帖子: 21
注册时间: 2008-09-21 23:42

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

#1

帖子 lkrocksthone » 2010-03-17 1:10

痛苦,请问有没有人成功在QT4中使用QProcess调用外部程序,并重定向输出到QTextEdit中呢?如果有,能不能共享下过程啊!谢谢!我的程序或者是shell命令能够正常调用,但是,没法重定向信息从QTextEdit输出。只是输出个换行。查了很多资料,未果。希望高人指点指点,小的感激不尽!为这,痛苦中...救命啊!急!
不要认为自己的生活悲苦,别人的故事你又知道多少呢?...http://www.lkphy.cn梦想韵律飞扬 淘宝网店 服装专卖 欢迎您!对服务的更新和拓展正应该是每一种操作系统所追求和希望的。
zigzed
帖子: 267
注册时间: 2006-02-27 10:32

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

#2

帖子 zigzed » 2010-03-17 9:39

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

另外,你确认shell中是输出到 STDOUT,不是 STDERR 吧。
头像
lkrocksthone
帖子: 21
注册时间: 2008-09-21 23:42

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

#3

帖子 lkrocksthone » 2010-03-17 13:00

我使用:
QProcess proc;
QString str;
proc->setSTDFile("a.txt");
proc->start("ifconfig");
在当前目录下有a.txt,内容为ifconfig的输出。
然后:
str=proc->readAll();
textEdit->appent(str);
只输出个换行。
不知问题何在?除了readAll,其他的readAllSTDerr等都试过了,效果一样。
不要认为自己的生活悲苦,别人的故事你又知道多少呢?...http://www.lkphy.cn梦想韵律飞扬 淘宝网店 服装专卖 欢迎您!对服务的更新和拓展正应该是每一种操作系统所追求和希望的。
zigzed
帖子: 267
注册时间: 2006-02-27 10:32

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

#4

帖子 zigzed » 2010-03-17 13:27

没有使用过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()) );
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

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

#5

帖子 wangdu2002 » 2010-03-17 13:29

楼主去专门的Qt中文论坛问下版主吧,那个版主Qt水平很不错滴----至少在国内来说。 :em06
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
lkrocksthone
帖子: 21
注册时间: 2008-09-21 23:42

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

#6

帖子 lkrocksthone » 2010-03-17 16:15

钻研中...

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

问题在其它地方也发了,等着回复。看来我还得看看书... :em06
不要认为自己的生活悲苦,别人的故事你又知道多少呢?...http://www.lkphy.cn梦想韵律飞扬 淘宝网店 服装专卖 欢迎您!对服务的更新和拓展正应该是每一种操作系统所追求和希望的。
头像
lkrocksthone
帖子: 21
注册时间: 2008-09-21 23:42

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

#7

帖子 lkrocksthone » 2010-03-17 18:07

问题解决啦,哈哈。。
天哪,我痛苦了两天,终于熬出lai啦..
原来是基础、原理和细节问题...冷静,再看一遍课本,问题解决..!..
谢谢,楼上们的帮助,没有你们的分担,我可要绝望啦....Thanks again.
不要认为自己的生活悲苦,别人的故事你又知道多少呢?...http://www.lkphy.cn梦想韵律飞扬 淘宝网店 服装专卖 欢迎您!对服务的更新和拓展正应该是每一种操作系统所追求和希望的。
torresfan
帖子: 1
注册时间: 2011-08-03 11:33

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

#8

帖子 torresfan » 2011-08-03 11:34

能告诉下怎么解决的吗?遇到同样的问题了
8021guoli
帖子: 2
注册时间: 2015-04-02 14:46

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

#9

帖子 8021guoli » 2015-04-02 15:11

您是怎么解决的?遇到相同的问题
回复