如果与 QProcess 一起传递,则无法识别参数

Argument doesn't recognized if passed with QProcess

本文关键字:识别 参数 QProcess 一起 如果      更新时间:2023-10-16

我很难使用 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);
}

进程输出:

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

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

>mplayer -vo gl C:/test.mp4

此外,从QStringList中删除该参数是有效的。为什么从命令行识别-vo选项而不是从QProcess识别?

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

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