2010-08-25 13 views
14

Ho il seguente:QT Aprire Esplora file di default su * 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 

Come posso ottenere lo stesso comportamento per diciamo Ubuntu?

risposta

37

Usa QDesktopServices e la sua funzione OpenURL:

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

dovrebbe funzionare con tutti i OS'es. L'ho provato solo su Windows.

+1

Funziona come un fascino su Windows XP SP2, Mac OSX 10.6.4 e Ubuntu. –

+0

Hmm ... per me (su Windows), questo in realtà sta aprendo il file usando l'associazione file predefinita. Ad esempio, sta aprendo un file .wav in Media Player piuttosto che navigare in Windows Explorer. Qualche idea su come ottenere il comportamento simile a Explorer? – aardvarkk

+0

Immagino che devi passare la directory contenente il file come argomento invece del file stesso. –

Problemi correlati