您的位置:首页 > 其它

QProcess调用外部程序:QProcess::start与QProcess::execute

2012-11-01 16:16 603 查看
QT提供了一个QProcess类用于启动一个外部程序并与之通信。QProcess::start()与QProcess::execute()都能完成启动外部程序的任务,二者有什么区别呢?区别在于start()是非阻塞的,而execute()是阻塞的。专业点讲,execute()=start()+waitforFinished()。下面是一个按键的槽函数,它响应按键的按下动作:

QString program = "amixer";
QStringList arguments_mute_on;
arguments_mute_on<<"cset"<<"numid=1"<<"0";
volCtrl->execute(program,arguments_mute_on);
close();
而开始我用的是volCtrl->start(program,arguments_mute_on),结果调用的程序无效,设置不起作用,经过分析原因是后面还有个close()函数。

这里显然应该是调用阻塞进程的典型场合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: