您当前的位置: 首页 >  交互

DS小龙哥

暂无认证

  • 4浏览

    0关注

    679博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

QT软件开发: QProcess启动进程完成交互并获取输出

DS小龙哥 发布时间:2021-07-28 14:41:50 ,浏览量:4

一、QProcess介绍

QProcess类用于启动外部程序并与它们通信。

QProcess允许将进程视为I/O设备。可以像使用qtcsocket访问网络连接一样对进程进行写入和读取。然后可以通过调用write()写入进程的标准输入,并通过调用read()、readLine()和getChar()读取标准输出。因为QProcess继承了QIODevice,所以它还可以用作QXmlReader的输入源,或者用于生成要使用QNetworkAccessManager上载的数据。

当进程退出时,QProcess重新进入NotRunning状态(初始状态),并发出finished()。 finished()信号提供进程的退出代码和退出状态作为参数,还可以调用exitCode()来获取最后一个完成的进程的退出代码,并调用exitStatus()来获取其退出状态。如果在任何时间点发生错误,QProcess将发出errorOccurred()信号。还可以调用error()来查找上次发生的错误类型,调用state()来查找当前进程状态。

进程有两个预定义的输出通道:标准输出通道(stdout)提供常规控制台输出,标准错误通道(stderr)通常提供进程打印的错误。这些通道代表两个独立的数据流。可以通过调用setReadChannel()在它们之间切换。当前读取通道上有可用数据时,QProcess发出readyRead()。当新的标准输出数据可用时,它还发出readyReadStandardOutput(),当新的标准错误数据可用时,发出readyReadStandardError()。不必调用read()、readLine()或getChar(),可以通过调用readAllStandardOutput()或readAllStandardError()显式读取两个通道中的任何一个通道的所有数据。

关注
打赏
1664009229
查看更多评论
立即登录/注册

微信扫码登录

0.0427s