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 上打开默认文件资源管理器的主要内容,如果未能解决你的问题,请参考以下文章