前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >QProcess一些小知识

QProcess一些小知识

作者头像
Qt君
发布2019-07-15 15:40:19
5750
发布2019-07-15 15:40:19
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

1. 启动外部程序的两种方式:

(1) 一体式:void start()外部程序启动后,将随主程序的退出而退出;

(2) 分离式:void startDetached()外部程序启动后,当主程序退出时并不退出。而是继续执行。

2. 当程序路径中含有空格的时候,特别是windows系统该程序路径会无法被识别。

解决方法是将程序路径传递给arguments参数。

3. 阻塞的函数,调用会可能界面停止响应,在交互性比较强的应用需要注意使用。

代码语言:javascript
复制
/* 堵塞。直到外部程序启动 */
bool waitForStarted(int msecs = )
/* 堵塞,直到输出通道中的新数据可读 */
bool waitForReadyRead(int msecs = )
/* 堵塞,直到输入通道中的数据被写 */
bool waitForBytesWritten(int msecs = )
/* 堵塞,直到外部程序结束 */
bool waitForFinished(int msecs = )

4. 管道命令的正确使用方法

正确实现使用setStandardOutputProces接口:

代码语言:javascript
复制
/* command1 | command2 */
QProcess process1;
QProcess process2;
process1.setStandardOutputProcess(&process2);
process1.start("command1");
process2.start("command2");

5. 捕获输出

(1) 标准输出

代码语言:javascript
复制
QByteArray readAllStandardOutput()

(2) 标准错误

代码语言:javascript
复制
QByteArray readAllStandardError()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档