如果通过QProcess传递,则无法识别参数

时间:2018-01-25 20:04:22

标签: c++ qt qt5 qprocess mplayer

我很难使用-voQProcess参数传递给mplayer, 这是一个最小的例子:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QString program;
    program = "C:\\mplayer-svn-38008\\mplayer.exe";

    QStringList arguments;
    arguments << "-vo gl" << "C:\\test.mp4"; 

    QProcess *m_process = new QProcess(this);
    m_process->start(program, arguments);
}

流程输出:

  

命令行上的未知选项:-vo gl

在Windows shell上使用相同的参数会导致正确的行为:

>mplayer -vo gl C:/test.mp4

此外,从QStringList删除该参数也可以。 为什么从命令行识别-vo选项但不从QProcess识别?

1 个答案:

答案 0 :(得分:2)

您必须分隔由空格分隔的每个参数:

arguments << "-vo"<< "gl" << "C:\\test.mp4";