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

Argument doesn't recognized if passed with QProcess

我很难使用 QProcess-vo 参数传递给 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);
}

过程输出:

Unknown option on the command line: -vo gl

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

>mplayer -vo gl C:/test.mp4

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

您必须将每个由 space:

分隔的参数分开
arguments << "-vo"<< "gl" << "C:\test.mp4";