QProcess的路径中没有空格

问题描述

我在启动QProcess时遇到了问题,其中路径包含空格。总体目标是运行其他程序(目前在Windows上,但macOS也很棒)。我测试了多条不同的路径,似乎只有没有空格的路径才能起作用。

这有效:

QProcess *process = new QProcess();
process->startDetached("C:\\Users\\lilfaen\\AppData\\Local\\Programs\\Opera\\launcher.exe");

这不起作用:

QProcess *process = new QProcess();
process->startDetached("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe");

如何使它正常工作? 欢迎任何帮助!

提前谢谢!

编辑: 根据vahancho的评论,我再次尝试了第二个示例,该示例仍然有效。谢谢! 将使用其他多种路径进行更多测试,并更新此帖子。

QProcess *process = new QProcess();
process->startDetached("\"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe\"");

解决方法

如果分别设置程序和参数,Qt将为您找出正确的引用。注意参数列表,每个参数都将是目标进程中的一个参数:

QProcess *process = new QProcess();
process->setProgram("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe");
process->setArguments(QStringList() << "www.google.com");
process->startDetached();