QT Open default file explorer on *nix

Gad D Lord picture Gad D Lord · Aug 25, 2010 · Viewed 7.2k times · Source

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?

Answer

user362638 picture user362638 · Aug 25, 2010

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.