如何解决如何重定向 QProcess StandardOutput
我正在使用 QProcess
的两个实例。在我的代码的某些部分,我需要 process1
将其输出重定向到 process2
。
通过遵循 Qt 文档,我可以使用 QProcess.setStandardOutput()
,这很棒。但是,稍后我必须在代码中禁用它。
如何将其输出重定向到默认行为 (stdout)?我试过 process1 = QProcess()
,但没有用。
process1 = QProcess()
process2 = QProcess()
process1.setStandardOutputProcess(process2)
process1.start("command1")
process2.start("command2")
process1.setStandardOutputProcess(QProcess())
有效,但这是重新划分的正确方法吗?还是我创建了一个新的“不必要的”对象?
解决方法
在 Qt 错误跟踪器上将此报告为错误后。
我收到了以下回复:
这是Qt的限制,
QProcess::setStandardOutputProcess(Qprocess *destination)
期望
非空指针;它不应在运行时更改。
我解决此问题的方法是使用 process1.setStandardOutputProcess(QProcess())
。
编辑
我问是否有解决方法并收到以下回复
有推荐的解决方法吗?
他回复了
没有。它的设计不允许更改设备 (因为很可能涉及 I/O 缓冲区)。 同样,当做类似
ls -l | fgrep "bla"
在shell中,没有办法改变第二个进程 飞行途中,或者。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。