1

私が読んだものはすべて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を実行しています。スラッシュをバックスラッシュに切り替えても役に立ちません。

4

1 に答える 1

1

パスにスペースがある場合は、QUrl::TolerantMode を使用する必要があります。これを試して:

QDesktopServices::openUrl(QUrl("file:////192.168.0.5/my folder/myfile.txt", QUrl::TolerantMode));
于 2017-06-05T11:12:29.753 に答える