Search code examples
qtqt4directoryqprocess

QT Open default file explorer on *nix


I have the following:

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

How I can achieve the same behavior for let say Ubuntu?


Solution

  • Use QDesktopServices and its openUrl function:

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

    It should work with all OS'es. I have tested it only in Windows.