我读到的所有内容都表明 QDesktopServices::openUrl 是使用默认程序打开文档的与平台无关的方法,并且几乎在所有时间内都有效。

我几乎说了,因为如果我通过网络路径,它似乎总是失败。梳理源代码,我看到ShellExecute返回错误代码2。

例:

QUrl localpath = QUrl::fromLocalFile("C:/temp/myfile.txt");
QUrl networkpath = QUrl::fromLocalFile("//192.168.0.5/my folder/myfile.txt");

QDesktopServices::openUrl(localpath);     //works fine
QDesktopServices::openUrl(networkpath);   //always fails

有没有办法清理网络路径以正确打开?我在Windows上运行Qt 4.8。将正斜杠切换为反斜杠无济于事。

最佳答案

如果路径中有空格,则应使用QUrl::TolerantMode。
尝试这个:

QDesktopServices::openUrl(QUrl("file:////192.168.0.5/my folder/myfile.txt", QUrl::TolerantMode));

关于c++ - 如何使用Qt中的默认程序在服务器上打开文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35164071/

10-09 18:00