2010-08-25 2 views
14

Ich habe folgendes:QT öffnen Standard-Datei-Explorer auf * nix

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 

Wie ich das gleiche Verhalten für let Ubuntu sagen erreichen kann?

Antwort

37

Verwenden QDesktopServices und seine Openurl Funktion:

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

Es sollte mit allen OS'es arbeiten. Ich habe es nur in Windows getestet.

+1

Funktioniert wie Charme auf Windows XP SP2, Mac OS X 10.6.4 und Ubuntu. –

+0

Hmm ... für mich (unter Windows) wird die Datei mit der Standarddateizuordnung geöffnet. Beispielsweise wird eine WAV-Datei im Media Player geöffnet, anstatt im Windows Explorer zu dieser Datei zu navigieren. Irgendeine Idee, wie man das Explorer-ähnliche Verhalten bekommt? – aardvarkk

+0

Ich denke, dass Sie das Verzeichnis, das die Datei als Argument enthält, anstelle der Datei selbst übergeben müssen. –