【发布时间】:2015-07-25 16:20:27
【问题描述】:
我的应用程序显示图像网格。单击鼠标右键时会显示上下文菜单,其中第一个选项是“在资源管理器中显示”。
我能够使用以下命令在目录中启动默认资源管理器:
QDesktopServices::openUrl(QUrl::fromLocalFile( directory ));
但是我也希望选择文件。
这可能吗?我想应该是这样,因为很多应用程序都可以做到这一点。
【问题讨论】:
我的应用程序显示图像网格。单击鼠标右键时会显示上下文菜单,其中第一个选项是“在资源管理器中显示”。
我能够使用以下命令在目录中启动默认资源管理器:
QDesktopServices::openUrl(QUrl::fromLocalFile( directory ));
但是我也希望选择文件。
这可能吗?我想应该是这样,因为很多应用程序都可以做到这一点。
【问题讨论】:
openUrl 不适合这里。您只需使用 Windows 资源管理器特殊参数启动另一个进程(使用 QProcess start 或 startDetached):
explorer.exe /select,"C:\pathTo\file.txt"
【讨论】:
好的,我要感谢 @Chernobyl 提供的有用帮助。
但是,我在这里找到了一个通用解决方案: How to "Reveal in Finder" or "Show in Explorer" with Qt
起初它没有编译,因为 QtCreator 代码使用了一个名为 Environment 的类,我试图将它添加到我的项目中,但该文件还包括其他文件,等等。我检查过,他们使用它只是为了查看资源管理器.exe 可以在系统路径中找到。它(对我来说)不是那么重要,所以我删除了那个检查然后我测试了它。它运行良好。它也应该适用于 Mac 和 Linux。
【讨论】: