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

来源:互联网 发布:2017年双11淘宝销售额 编辑:程序博客网 时间:2024/06/05 06:17

    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()函数。

这里显然应该是调用阻塞进程的典型场合。

原创粉丝点击