QT 在 *nix 上打开默认文件资源管理器

Posted

技术标签:

【中文标题】QT 在 *nix 上打开默认文件资源管理器【英文标题】:QT Open default file explorer on *nix 【发布时间】:2010-08-25 19:58:13 【问题描述】:

我有以下几点:

QProcess *process = new QProcess(this);
QString path = QDir::toNativeSeparators(QApplication::applicationPath);
#if defined(Q_OS_WIN)

process->start("explorer.exe",  QStringList() << path);

#elif defined(Q_OS_MAC)

process->start("open", QStringList() << path);

#endif

如果说 Ubuntu,我如何实现相同的行为?

【问题讨论】:

【参考方案1】:

使用QDesktopServices及其openUrl函数:

QString path = QDir::toNativeSeparators(QApplication::applicationDirPath());
QDesktopServices::openUrl(QUrl::fromLocalFile(path));

它应该适用于所有操作系统。我只在 Windows 中测试过。

【讨论】:

在 Windows XP SP2、Mac OSX 10.6.4 和 Ubuntu 上运行起来就像魅力一样。 嗯...对我来说(在 Windows 上),这实际上是使用默认文件关联打开文件。例如,它在 Media Player 中打开一个 .wav 文件,而不是在 Windows 资源管理器中导航到它。知道如何获得类似 Explorer 的行为吗? 我猜你必须传递包含文件的目录而不是文件本身。

以上是关于QT 在 *nix 上打开默认文件资源管理器的主要内容,如果未能解决你的问题,请参考以下文章

如何打开windows资源管理器

添加资源文件

您可以使用 Kivy Python 应用程序打开文件资源管理器吗?

ubuntu 资源管理器 在哪里打开

如何在系统文件资源管理器中打开文件/文件夹?

电脑键盘上的F键有什么用 电脑F键功能讲解