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

Ive*_*aev 16 directory qt qt4 qprocess

我有以下内容:

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
Run Code Online (Sandbox Code Playgroud)

如何说Ubuntu可以达到相同的行为?

小智 38

使用QDesktopServices及其openUrl函数:

QString path = QDir::toNativeSeparators(QApplication::applicationDirPath());
QDesktopServices::openUrl(QUrl::fromLocalFile(path));
Run Code Online (Sandbox Code Playgroud)

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

  • 适用于Windows XP SP2,Mac OSX 10.6.4和Ubuntu上的charm. (2认同)