【问题标题】:QT: Launch default exporer on a directory selecting a fileQT:在选择文件的目录上启动默认导出器
【发布时间】:2015-07-25 16:20:27
【问题描述】:

我的应用程序显示图像网格。单击鼠标右键时会显示上下文菜单,其中第一个选项是“在资源管理器中显示”。

我能够使用以下命令在目录中启动默认资源管理器:

QDesktopServices::openUrl(QUrl::fromLocalFile( directory ));

但是我也希望选择文件。

这可能吗?我想应该是这样,因为很多应用程序都可以做到这一点。

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    openUrl 不适合这里。您只需使用 Windows 资源管理器特殊参数启动另一个进程(使用 QProcess startstartDetached):

    explorer.exe /select,"C:\pathTo\file.txt"

    【讨论】:

    • 谢谢,但是如果用户使用的是 Mac 或 Linux 会发生什么?
    • @StephenH.Anderson 我认为您需要 Windows 方法。可能没有简单的跨平台方法可以做到这一点。在 Windows 上是资源管理器,在 ubuntu 上可以是 dolphin 或 nautilus 或其他。
    • 好的切尔诺贝利,谢谢,我会专门研究 Mac 需要做什么。
    • 顺便说一句,我还不能让它在 Windows 上运行。我用过这个: QProcess::startDetached("explorer.exe", QStringList()
    • @StephenH.Anderson support.microsoft.com/en-us/kb/152457 好像你忘记了逗号,而且我没有使用 Mac,所以我无法为 Finder 找到相同的命令。
    【解决方案2】:

    好的,我要感谢 @Chernobyl 提供的有用帮助。

    但是,我在这里找到了一个通用解决方案: How to "Reveal in Finder" or "Show in Explorer" with Qt

    起初它没有编译,因为 QtCreator 代码使用了一个名为 Environment 的类,我试图将它添加到我的项目中,但该文件还包括其他文件,等等。我检查过,他们使用它只是为了查看资源管理器.exe 可以在系统路径中找到。它(对我来说)不是那么重要,所以我删除了那个检查然后我测试了它。它运行良好。它也应该适用于 Mac 和 Linux。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多