2010-08-25 17 views
14

Tengo el siguiente:QT Abrir explorador de archivos por defecto en * 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 

¿Cómo puedo lograr el mismo comportamiento para Digamos que Ubuntu?

Respuesta

37

Uso QDesktopServices y su función OpenUrl:

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

Se debe trabajar con todos los Sistemas Operativos. Lo he probado solo en Windows.

+1

Funciona como encanto en Windows XP SP2, Mac OSX 10.6.4 y Ubuntu. –

+0

Hmm ... para mí (en Windows), esto realmente está abriendo el archivo usando la asociación de archivos predeterminada. Por ejemplo, está abriendo un archivo .wav en el Reproductor multimedia en lugar de navegar en él en el Explorador de Windows. ¿Alguna idea de cómo obtener el comportamiento similar a Explorer? – aardvarkk

+0

Supongo que debe pasar el directorio que contiene el archivo como argumento en lugar del archivo en sí. –

Cuestiones relacionadas