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

来源:互联网 发布:新歌声网络战队8强 编辑:程序博客网 时间:2024/05/17 06:39

   这几天一直在研究如何使用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()”,信号再次出现。

  

  解决思路:

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

原创粉丝点击