我发现的答案很少,但在我的Qt5.3.1版本中不起作用。
我有一个QProcess
我需要使用文件路径作为参数运行:
/home/user/.wine/drive_c/users/user/Local Settings / LocalLow / ABC / test / test1
当我尝试通过此QProcess
对象运行程序时,它失败了,因为它没有转义的空格。然后,我尝试通过使用来修复它,QDir::toNativeSeparators
但是它不起作用:
QDir::toNativeSeparators("/home/user/.wine/drive_c/users/user/Local Settings/LocalLow/A B C/test/test1")
返回与我作为参数传递的字符串完全相同的字符串。
这就是我开始过程的方式:
QProcess process;
QStringList arguments;
arguments.append(binaryDir);
process.setArguments(arguments);
process.setProgram("wine");
process.start();
PS我不能手动修复它,因为该路径是从外面来的。
有两种可能的方法。您可以使用转义引号(在引号之间插入字符串):
QStringList arguments;
QString str="\"/home/user/.wine/drive_c/users/user/Local Settings/LocalLow/A B C/test/test1\"";
arguments.append(str);
或使用QStringList()
过载start
自动进行转义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句