关于窗口调用外部程序及接收返回内容的调试

   这几天一直在研究如何使用Qt4编辑的窗口调用外部程序,然后接收返回值。调用的部分比较容易,很快就实现了。问题主要出现在接受部分。利用到的Qt4资源有:

   类QProcess

   类成员函数start()、execte()

   信号readyRead()、readyReadStandardError()、readyReadStandardOutput()

   接受处理函数(自建)readOutput()

 

  问题描述:

    在调用前先在调用的窗口类定义中添加了“QProcess* process;”声明,然后在调用前用new分配了空间。接下来是建立连接“connect(process, SIGNAL(readyReadStandardOutput()), this, SLOT(readOutput()));"。之后调用start()运行目标程序。之后发现没有什么反应,利用调试模式的时候可以在“Applications Output”中看到有返回的内容。利用单步调试也发现没有signal出现。后来把signal改为“readyReadStandardError()”后发现有了信号。这样的话是不是意味着返回值是错误的呢?之后我更改了运行的目标程序,发现又没有信号了,把signal还原为“readyReadStandardOutput()”,信号再次出现。

  

  解决思路:

    经过阅读帮助文档,问题应该要通过“输出通道”、“信号”、“读入通道”三者的合理配置,才能达到目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值