使用包含空格的参数调用Qprocess



我试图用qprocess调用可执行文件并传递一些可能(并且很可能会)包含空格(不是全部)的参数。可执行文件为python脚本,已与Py2exe打包。python脚本使用optparse解析参数。

如果我在cmd.exe中调用py2exe.exe,调用是这样的:

pythonExecutable.exe -aarg_a -barg_b -c"path with spaces" -darg_d

这样的电话会成功的。

我想通过使用QprocessQt应用程序来做到这一点,但我找不到一种方法来做到这一点,因为Qprocess将剥离任何引号(""),在空格出现的地方留下参数。

我似乎遗漏了一些东西,有人能帮助解决这个问题吗?

如果你以更合适的方式使用QProcess,那就不会有太大的问题

QString program = "pythonExecutable.exe";
QStringList arguments;
arguments <<"-aarg_a"<< "-barg_b"<< "-c"path with spaces""<< "-darg_d";
QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);

通常当你有带空格的参数并且不需要" symbol

"

你只需要在QStringList

中传递参数
QString program = "pythonExecutable.exe";
QStringList arguments;
arguments <<"a"<< "path with spaces";
QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);

此程序是Qt文档中列出的示例程序的修改版本

相关内容

最新更新