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

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

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

你可能感兴趣的:(linux综合)