gpt4 book ai didi

c++ - 路径中的 Qt5 转义空间

转载 作者:太空狗 更新时间:2023-10-29 23:02:38 25 4
gpt4 key购买 nike

我发现很少answers但它们不适用于我的 Qt5.3.1 构建。

我有一个 QProcess,我需要使用文件路径作为参数来运行它:

/home/user/.wine/drive_c/users/user/Local Settings/LocalLow/A B C/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();

附言我无法手动修复它,因为该路径来自外部某处。

最佳答案

有两种可能的方法。您可以使用转义引号(在引号之间插入字符串):

QStringList arguments;
QString str="\"/home/user/.wine/drive_c/users/user/Local Settings/LocalLow/A B C/test/test1\"";
arguments.append(str);

或者使用 startQStringList() 重载,它会自动转义。

关于c++ - 路径中的 Qt5 转义空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27805585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com