Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在mac OSX上使用QProcess启动应用程序(带空间的路径)?_Macos_Space_Qprocess - Fatal编程技术网

Macos 如何在mac OSX上使用QProcess启动应用程序(带空间的路径)?

Macos 如何在mac OSX上使用QProcess启动应用程序(带空间的路径)?,macos,space,qprocess,Macos,Space,Qprocess,使用QProcess启动程序时,如果其路径没有空间,则运行良好。 例如: QProcess app; app.startDetached("open /Users/test/Desktop/My Test/Hello.app"); 但是,如果程序路径包含空格,则不起作用。 例如: QProcess app; app.startDetached("open /Users/test/Desktop/My Test/Hello.app"); 有人可以帮助我,告诉我如何启动路径中有空格的程序? 谢谢

使用QProcess启动程序时,如果其路径没有空间,则运行良好。
例如:

QProcess app;
app.startDetached("open /Users/test/Desktop/My Test/Hello.app");
但是,如果程序路径包含空格,则不起作用。
例如:

QProcess app;
app.startDetached("open /Users/test/Desktop/My Test/Hello.app");
有人可以帮助我,告诉我如何启动路径中有空格的程序?

谢谢

您需要在路径的字符串中使用引号:-

QProcess app;
app.startDetached("open /Users/test/Desktop/My Test/Hello.app");
app.startDetached("open \"/Users/test/Desktop/My Test/Hello.app\"");

如果没有引号,空格将建议路径的下一部分作为传递给打开调用的第二个参数。

您需要在字符串中为路径使用引号:-

QProcess app;
app.startDetached("open /Users/test/Desktop/My Test/Hello.app");
app.startDetached("open \"/Users/test/Desktop/My Test/Hello.app\"");

如果没有引号,空格将建议路径的下一部分作为传递给打开调用的第二个参数。

谢谢您的回复。但我尝试了一下,结果失败了,提示:文件/Users/test/Desktop/My test/Hello.app不存在。应用程序的路径是正确的。“open”是否有限制?请尝试将其与捆绑包中可执行文件的完整路径一起使用,路径为“/Users/test/Desktop/My test/Hello.app/Contents/Mac OS/Hello”,谢谢您的友好回复。我再次尝试了你的第一个建议(使用引号),发现它是正确的。测试时是我的错。第二种方法直接指向二进制文件是可以的,但我更喜欢第一种方法。proc->start(“deepin image viewer\”“+path+”);谢谢你的回复。但我尝试了一下,结果失败了,提示:文件/Users/test/Desktop/My test/Hello.app不存在。应用程序的路径是正确的。“open”是否有限制?请尝试将其与捆绑包中可执行文件的完整路径一起使用,路径为“/Users/test/Desktop/My test/Hello.app/Contents/Mac OS/Hello”,谢谢您的友好回复。我再次尝试了你的第一个建议(使用引号),发现它是正确的。测试时是我的错。第二种方法直接指向二进制文件是可以的,但我更喜欢第一种方法。proc->start(“deepin image viewer\”“+path+”);
QProcess app;
app.startDetached("open /Users/test/Desktop/My Test/Hello.app");