qt执行终端命令_QT通过QProcess执行终端命令并实时输出回显

引子

在QT程序中我们经常需要与其他的程序间进行交互,而与终端进行交互就是一个例子。在不需要获取返回信息的情况下我们可以直接使用”system()”函数执行,但是当需要获取执行的结果或者需要实时地将结果输出到窗口上时,就比较难办了,需要涉及进程管道等等。而QT提供的QProcess类则大大简化了这一过程。

QProcess是QT提供的与外部程序进行交互的一个类,主要使用到以下的函数:

start(); //启动一个进程

kill(); //关闭启动的外部进程

write(); //向外部进程写入数据

readAllStandardOutput(); //读取外部进程的标准输出

readAllStandardError(); //读取外部进程的错误信息

创建QProcess对象并连接信号与槽

cmd = new QProcess(this);

connect(cmd , SIGNAL(readyReadStandardOutput()) , this , SLOT(on_readoutput()));

connect(cmd , SIGNAL(readyReadStandardError()) , this , SLOT(on_readerror()));

实现槽函数

接收到标准输出:

void MainWindow::on_readoutput()

{

ui->textEdit->append(cmd->readAllStandardOutput().data()); //将输出信息读取到编辑框

}

接收到错误信息:

void MainWindow::on_readerror()

{

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值