QDesktopServices :: openUrl()无法在MAC Finder中打开目录

时间:2018-01-13 18:55:11

标签: c++ macos qt

我希望应用程序在MAC的finder中打开一个目录,但它不起作用。

它仅适用于Windows,而不适用于MAC。有解决方案吗

更新:

正如@Mohammad Kanan建议的那样,使用以下语法:

QDesktopServices :: openUrl(QUrl(" file:/// your_folder",QUrl :: TolerantMode));

它正在运作,例如:

QString workingDir = qApp->applicationDirPath();
QString path = QString::fromLatin1("file://%1").arg(workingDir);
QDesktopServices::openUrl(QUrl(path, QUrl::TolerantMode));

聚苯乙烯。你也可以在其上添加相对路径,但要注意字符串中的..和/:

QString workingDir = qApp->applicationDirPath();
workingDir += "/../../../";
QString path = QString::fromLatin1("file://%1").arg(workingDir);
QDesktopServices::openUrl(QUrl(path, QUrl::TolerantMode));

1 个答案:

答案 0 :(得分:1)

Windows和MAC上的正确语法:

打开文件:

QDesktopServices::openUrl(QUrl("file:///Users/myname/myfile"));

浏览具有相同语法的文件夹:

QDesktopServices::openUrl(QUrl("file:///Users/myname/"));

注意,如果文件系统驻留在包含空格的路径上:

QDesktopServices::openUrl(QUrl("file:///C:/Documents and Settings/All Users/Desktop", QUrl::TolerantMode));