引子
在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()
{