加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 01:42:03 所属栏目:Windows 来源:网络整理
导读:我试图用qprocess调用一个可执行文件并传递一些可能(并且很可能会)包含空格(不是全部)的参数. 可执行文件是一个与Py2exe打包在一起的 python脚本. python脚本使用optparse来解析参数. 如果我在cmd.exe中调用py2exe.exe,则调用如下: pythonExecutable.exe -a
我试图用qprocess调用一个可执行文件并传递一些可能(并且很可能会)包含空格(不是全部)的参数.
可执行文件是一个与Py2exe打包在一起的 python脚本. python脚本使用optparse来解析参数.

如果我在cmd.exe中调用py2exe.exe,则调用如下:

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

像这样的电话会成功.

我想通过使用Qprocess的Qt应用程序来做到这一点,但我无法找到一种方法来执行此操作,因为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);

当你与空间争论并且不需要“符号”时,你就是正常的

你只需要在QStringList中传递参数

QString program = "pythonExecutable.exe";
QStringList arguments;
arguments <<"a"<< "path with spaces";

QProcess *myProcess = new QProcess(parent);
myProcess->start(program,arguments);

此程序是Qt docs Here中列出的示例程序的修改版本

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读