【问题标题】:QT Open default file explorer on *nixQT 在 *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,我如何实现相同的行为?

【问题讨论】:

    标签: qt qt4 directory qprocess


    【解决方案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 的行为吗?
    • 我猜你必须传递包含文件的目录而不是文件本身。
    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2014-11-12
    • 1970-01-01
    • 2012-02-14
    • 2021-06-03
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    相关资源
    最近更新 更多